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


当前回答

当时我用的是:

yarn test TestFileName.spec.js

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

其他回答

至少从2019年开始:

NPM test——bar.spec.js

2015年:

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

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

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

你所要做的就是念咒语

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

如果你不想全局安装笑话,你可以使用

npx jest foo.test.js

当时我用的是:

yarn test TestFileName.spec.js

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

来自Jest文档:

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

使用

 npm run test