如何使用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 -- Foo 

在指定文件( FooBar.js )中运行testing。 但是你应该注意到:

  • Jest将这个名称视为区分大小写,因此如果您使用的是不区分大小写但保留大小写的文件系统(如Windows NTFS),则可能会遇到看起来很奇怪的事情。

  • Jest似乎将规范视为前缀。

所以上面的咒语会的

  • 运行FooBar.jsFoo.jsFooZilla.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", ... }, }