指定 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 测试覆盖率

如何使用不同的jest.config.js进行单元和组件测试?

Vue 单元测试 使用mocha+jest