我能够使用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'


当前回答

如果你安装了Visual Studio Code插件Jest Runner,

你将有调试/运行选项上面的每个描述和它。

您可以在Visual Studio Code中打开测试文件并单击其中一个选项。

其他回答

你所要做的就是念咒语

npm test -- SomeTestFileToRun

standalone——是*nix的魔法,用于标记选项的结束,这意味着(对于NPM)之后的所有内容都传递给正在运行的命令,在这种情况下是玩笑。顺便说一句,您可以这样显示Jest的使用说明

npm test -- --help

总之,高喊

npm test -- Foo

运行命名文件(FooBar.js)中的测试。不过,你应该注意:

Jest将名称视为区分大小写的,因此如果您正在使用不区分大小写但保留大小写的文件系统(如Windows NTFS),则可能会遇到奇怪的情况。 Jest似乎将规范视为前缀。

所以上面的咒语会

运行FooBar.js, Foo.js和FooZilla.js 但不是运行foo.js

不需要传递完整的路径。只需使用正则表达式模式。

看到——testLocationInResults。

yarn jest --testNamePattern my_test_name
yarn jest -t=auth
yarn jest -t component # This will test all whose test name contains `component`

yarn jest --testPathPattern filename # This will match the file path
yarn jest filename # This will match the file path, the same with above

在特定文件中运行特定测试:

yarn test -f "partial-filename" -t "as split node"

npm测试,或笑话可以取代纱线测试,这取决于你喜欢的JS捆绑器。

这将只尝试在包含some-partial-filename的文件中查找测试,并且在这些文件中,测试将需要有一个describe或it指令,例如提到“作为分割节点”

// In cool-partial-filename.js
describe("with a less indented sibling", () => {
  it("should create a new check-list-item with the same indent as split node", () => {
    console.log("This would run with the invocation above");
  })
})

来自Jest文档:

  "scripts": {
    "test": "jest path/to/my-test.js"
  }

使用

 npm run test

用一个包裹。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