如何使用Jesttesting单个文件?
我能够使用Jesttesting多个文件,但我无法弄清楚如何testing一个文件。
我有:
- 运行
npm install jest-cli --save-dev
- 更新了
package.json
:`{…“scripts”:{“test”:“jest”} …} - 写了一些testing。
运行npm test
按预期工作(目前它运行14个testing)。
如何testing单个文件,例如testingapp/foo/__tests__/bar.spec.js
?
我试着运行npm test app/foo/__tests__/bar.spec.js
(来自项目根目录),但是我得到以下错误:
npm ERR! Error: ENOENT, open '<path to project>/node_modules/app/foo/__tests__/bar.spec.js/package.json'
谢谢
如果npm test
工作,这意味着jest被安装在全球范围内。 为了运行一个特定的testing,你需要使用jest
命令, npm test
将不起作用。
所以你可以用jest bar.spec.js
直接运行jest
注意:您不必inputtesting的完整path:参数变成正则expression式,因此它只需要成为完整path的一部分。
注意2.0:如果您已经使用npm install -g jest
在全局安装jest,请将其更改为npm install -g jest-cli
你所要做的就是改变魔术的咒语:
npm test -- SomeTestFileToRun
独立的--
是用来标记选项结尾的* nix魔术,意思是(对于NPM),在此之后每隔一段时间传递给正在运行的命令,在这种情况下是jest
。 顺便说一句,你可以通过说话来开玩笑
npm test -- --help
总之,呗
npm test -- SomeTestFileToRun
在指定文件( FooBar.js
)中运行testing。 但是你应该注意到:
-
Jest将这个名称视为区分大小写,因此如果您使用的是不区分大小写但保留大小写的文件系统(如Windows NTFS),则可能会遇到看起来很奇怪的事情。
-
Jest似乎将规范视为前缀。
所以上面的咒语会的
- 运行
FooBar.js
,Foo.js
和FooZilla.js
- 但不运行
foo.js
运行个人testing:
validation使用我的模块ValidationUtil.spec.js
npm test -t ValidationUtil
– > – >之后,把正则expression式包含testing名称
使用npm test
并不意味着在全球安装。 这只是意味着“testing”映射到您的package.json中使用笑话
以下是我在项目的根本层面所做的工作:
node_modules/.bin/jest [args]
参数可以是要运行的testing文件或包含多个文件的目录。
如果你使用yarn
你可以直接在.spec.js
或.test.js
文件之后添加:
yarn test src/lib/myfile.test.js
这是从我的package.json
作为一个本地包安装(删除相关部分)作为jest安装的一部分:
{ ... "scripts": { "test": "jest", "testw": "jest --watch", "testc": "jest --coverage", ... }, "devDependencies": { "jest": "^18.1.0", ... }, }