我能够使用Jest测试多个文件,但我不知道如何测试单个文件。

我有:

执行npm install jest-cli——save-dev命令 更新包。Json: '{…"scripts": {"test": "jest"}…} 编写了许多测试。

运行npm测试可以正常工作(目前运行14个测试)。

如何测试单个文件,例如test app/foo/__tests__/bar.spec.js?

我已经尝试运行npm test app/foo/__tests__/bar.spec.js(从项目根),但我得到以下错误:

npm犯错!错误:ENOENT,打开'/node_modules/app/foo/tests/bar.spec.js/package.json'


当前回答

简单的方法是运行单个单元测试文件,就是在根文件夹内运行终端中的命令。

npm test <fileName.test.js>

// For example
npm test utils.test.js

我也尝试了Jest Runner扩展的Visual Studio代码,它工作得很好。

其他回答

至少从2019年开始:

NPM test——bar.spec.js

2015年:

为了运行特定的测试,您需要使用jest命令。NPM测试无效。要在命令行上直接访问jest,可以通过npm i -g jest-cli或yarn global add jest-cli安装它。

然后使用jest bar.spec.js运行特定的测试。

注意:您不必输入测试文件的完整路径。参数被解释为正则表达式。完整路径的任何部分都可以唯一地标识一个文件。

我们在Angular中使用了nrwl-nx。在这种情况下,我们可以使用这个命令:

npm test <ng-project> -- --testFile "file-name-part"

注:

npm test will run the test script specified in package.json: "test": "ng test" --: tells npm to pass the following parameters to the test script (instead of consuming them) Thus the rest of the cmd will be passed to ng test <ng-project> is the name of a project in angular.json when you omit this parameter, the "defaultProject" (specified in angular.json) will be used (so you must specify it, when the test is not in your default project) Next we must check which builder is used: In angular.json navigate to "project" - "<ng-project>" - "architect" - "test" and check the "builder", which in our case is: "@nrwl/jest:jest" Now that we know the builder, we need to find the available cmd-line parameters On the command line, run npm test <ng-project> -- --help to see all available options Or check the online documentation One of the options is --testFile which is used here

使用package.json:

  "scripts": {
    "test": "jest --coverage",
    "start": "node index.js"
  }

下面的方法对我很有效:

npm test -f comm -- -t=first

它会找到文件名中包含“comm”的所有文件,只运行找到的文件中包含“first”的测试。

当时我用的是:

yarn test TestFileName.spec.js

你不应该输入完整路径。对我来说,这在Windows 10电脑上是可行的。

也可以通过以下方法实现:

jest --findRelatedTests path/to/fileA.js

参考(Jest CLI选项)

如何在Nx monorepo中实现呢?下面是答案(在目录/path/to/workspace中):

npx nx test api --findRelatedTests=apps/api/src/app/mytest.spec.ts

参考和更多信息:如何在nx# 6中测试单个Jest测试文件