我能够使用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'
我们在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
用一个包裹。json脚本
在package.json中使用"scripts": {"test": "jest"}:
npm test -- foo/__tests__/bar.spec.js
直接使用jest-cli
Globally-installed:
jest foo/__tests__/bar.spec.js
本地安装:
./node_modules/.bin/jest foo/__tests__/bar.spec.js
使用——testPathPattern
testPathPattern选项具有将路径作为未命名的位置参数传递给jest-cli的等效效果。看到normalize.ts。
./node_modules/.bin/jest --testPathPattern foo/__tests__/bar.spec.js
测试两个或多个特定文件
文件名用逗号或空格分隔:
./node_modules/.bin/jest foo/__tests__/bar.spec.js,foo/__tests__/foo.spec.js
./node_modules/.bin/jest foo/__tests__/bar.spec.js foo/__tests__/foo.spec.js
多次传递——testPathPattern:
./node_modules/.bin/jest --testPathPattern foo/__tests__/bar.spec.js --testPathPattern foo/__tests__/foo.spec.js