指定 jest 测试文件目录
Posted
技术标签:
【中文标题】指定 jest 测试文件目录【英文标题】:Specify jest test files directory 【发布时间】:2019-03-09 06:41:39 【问题描述】:刚接触单元测试,我只想测试位于特定目录中的文件
如何指定我希望仅对特定目录上的文件运行测试并忽略其他文件
所以我已经通过 npm 安装了 jest
"jest": "^23.6.0",
并通过在 package.json 中指定我的测试命令
scripts:
"test": "jest --verbose"
以上运行所有文件,但我希望它运行特定目录中的文件,例如仅最新目录
我该怎么做
【问题讨论】:
【参考方案1】:添加目录名称作为参数
scripts:
"test": "jest --verbose ./my-directory"
【讨论】:
只是为了帮助像我这样的其他 jest 后辈,您所有的测试文件都必须以 int '.test.js' 结尾,否则 jest 将找不到它们。 这还将包括名称为my-directory
的任何子目录。【参考方案2】:
将配置添加到您的 package.json。
"jest":
"testMatch": ["**/laratest/**/*.test.js"]
https://jestjs.io/docs/en/configuration.html#testmatch-arraystring
【讨论】:
【参考方案3】:这篇文章
https://bambielli.com/til/2018-09-09-moving-jest-config-out-of-root/
建议在你的 config.js 文件中做这样的事情,我引用这篇文章:
// jest.conf from inside `config/` directory
rootDir: '../',
globalSetup: ...,
【讨论】:
【参考方案4】:在./jest.config.js
中,您可以添加要搜索的目录数组
// A list of paths to directories that Jest should use to search for files in
roots: [
"./",
"../more-files/"
],
【讨论】:
这就是我需要的,配置 sn-p 被添加到jest.config.js
如果想要你发布这个作为jest.config.js
配置问题的答案,我会发布一个问题并将其发送给您。
是的,它可以让您更好地控制位置。当然。【参考方案5】:
将--rootdir
选项添加到您的命令中:
jest --verbose --rootDir=laratest
或者在脚本中:
scripts:
"test": "jest --verbose --rootDir=laratest"
我尝试在我自己的项目中指定目录(即jest --verbose ./laratest
),但没有看到预期的结果。 HTH。
【讨论】:
【参考方案6】:您必须具体,以避免运行其他同名目录。例如,这仅运行clients
中的测试:
yarn jest "$PWD/clients"
但这会在任何名为 clients
的文件夹中运行测试:
yarn jest clients
# also: yarn jest ./clients
【讨论】:
【参考方案7】:Mac 解决方案(未在 windows 上测试)
scripts:
...,
"test": "export NODE_ENV=development && jest"
根据jest
文档,如果NODE_ENV
尚未设置,则将设置为test
。因此,如果您 export
它...它将传递给 jest
。
【讨论】:
以上是关于指定 jest 测试文件目录的主要内容,如果未能解决你的问题,请参考以下文章
如何配置 playwright-jest 以排除测试套件(规范)文件以进行运行?
使用 Jest 进行测试失败并出现错误:查看文件以进行更改时出错:EMFILE
如果 jest.config.js 在子文件夹或子目录中,则 Jest 需要更多时间
使用 Nuxt 对 VueJS 应用程序的 Jest 测试覆盖率