如何使用 Jest 测试单个文件?

新手上路,请多包涵

我可以使用 Jest 测试多个文件,但我不知道如何测试单个文件。

我有:

  • 运行 npm install jest-cli --save-dev
  • 更新 package.json : `{ … “scripts”: { “test”: “jest” } … }
  • 写了一些测试。

运行 npm test 按预期工作(目前它运行 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’

原文由 Musket 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.1k
2 个回答

至少从 2019 年开始:

npm test -- bar.spec.js

2015 年:

为了运行特定的测试,您需要使用 jest 命令。 npm test 不起作用。要直接在命令行上访问 jest ,请通过 npm i -g jest-cliyarn global add jest-cli 安装它。

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

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

原文由 ncuillery 发布,翻译遵循 CC BY-SA 4.0 许可协议

你所要做的就是念咒语:

 npm test -- SomeTestFileToRun

独立的 -- 是 *nix 魔术,用于标记选项的结尾,这意味着(对于 NPM)之后的所有内容都传递给正在运行的命令,在本例中为 jest 。顺便说一句,您可以通过说来显示 Jest 使用说明

npm test -- --help

总之,呗

npm test -- Foo

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

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

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

所以上面的咒语会

  • 运行 FooBar.jsFoo.jsFooZilla.js
  • 运行 foo.js

原文由 Nicholas Carey 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题