指定Jest测试文件目录

ndh0cuux  于 2022-12-08  发布在  Jest
关注(0)|答案(7)|浏览(243)

我是单元测试的新手,我只想测试位于特定目录中的文件
如何指定只对特定目录中的文件运行测试,而忽略其他文件?
所以我已经通过npm安装了jest

"jest": "^23.6.0",

并通过以下方式在package.json中指定了我的测试命令

scripts:{
    "test": "jest --verbose"
 }

以上运行所有的文件,但我希望它运行的文件在一个特定的目录,如laratest目录只
我该如何继续?

dgenwo3n

dgenwo3n1#

将目录名称作为参数添加

scripts:{
    "test": "jest --verbose ./my-directory"
}
qojgxg4l

qojgxg4l2#

将配置添加到package.json。

"jest": {
  "testMatch": ["**/laratest/**/*.test.js"]
}

https://jestjs.io/docs/configuration#testmatch-arraystring

kxkpmulp

kxkpmulp3#

./jest.config.js中,您可以添加要搜索的目录数组

// A list of paths to directories that Jest should use to search for files in
roots: [
    "./",
    "../more-files/"
],
6jygbczu

6jygbczu4#

本文
https://bambielli.com/til/2018-09-09-moving-jest-config-out-of-root/
建议在config.js文件中执行类似的操作,我引用这篇文章:

// jest.conf from inside `config/` directory
{
  rootDir: '../',
  globalSetup: {...},
}
nszi6y05

nszi6y055#

[edit:如其他答案中所述,根测试目录可以是参数(例如jest ... laratest),在最初编写时,这不起作用]
--rootdir选项添加到命令中:
jest --verbose --rootDir=laratest
或在脚本中:

scripts:{
    "test": "jest --verbose --rootDir=laratest"
 }

正如@Dimitri所指出的,这将把laratest视为配置的位置,而不仅仅是测试的位置。

eit6fx6z

eit6fx6z6#

为了避免运行同名的其他目录,您必须指定目录。例如,这只运行clients中的测试:

yarn jest "$PWD/clients"

但这会在任何名为clients的文件夹中运行测试:

yarn jest clients
# also: yarn jest ./clients
xmq68pz9

xmq68pz97#

Mac解决方案(未在Windows上测试)

scripts: {
  ...,
  "test": "export NODE_ENV=development && jest"
}

根据jest文档,如果NODE_ENV尚未设置,它将被设置为test。因此,如果您export它...它将传递到jest

相关问题