我是单元测试的新手,我只想测试位于特定目录中的文件如何指定只对特定目录中的文件运行测试,而忽略其他文件?所以我已经通过npm安装了jest
"jest": "^23.6.0",
并通过以下方式在package.json中指定了我的测试命令
scripts:{ "test": "jest --verbose" }
以上运行所有的文件,但我希望它运行的文件在一个特定的目录,如laratest目录只我该如何继续?
dgenwo3n1#
将目录名称作为参数添加
scripts:{ "test": "jest --verbose ./my-directory" }
qojgxg4l2#
将配置添加到package.json。
"jest": { "testMatch": ["**/laratest/**/*.test.js"] }
https://jestjs.io/docs/configuration#testmatch-arraystring
kxkpmulp3#
在./jest.config.js中,您可以添加要搜索的目录数组
./jest.config.js
// A list of paths to directories that Jest should use to search for files in roots: [ "./", "../more-files/" ],
6jygbczu4#
本文https://bambielli.com/til/2018-09-09-moving-jest-config-out-of-root/建议在config.js文件中执行类似的操作,我引用这篇文章:
// jest.conf from inside `config/` directory { rootDir: '../', globalSetup: {...}, }
nszi6y055#
[edit:如其他答案中所述,根测试目录可以是参数(例如jest ... laratest),在最初编写时,这不起作用]将--rootdir选项添加到命令中:jest --verbose --rootDir=laratest或在脚本中:
jest ... laratest
--rootdir
jest --verbose --rootDir=laratest
scripts:{ "test": "jest --verbose --rootDir=laratest" }
正如@Dimitri所指出的,这将把laratest视为配置的位置,而不仅仅是测试的位置。
eit6fx6z6#
为了避免运行同名的其他目录,您必须指定目录。例如,这只运行clients中的测试:
clients
yarn jest "$PWD/clients"
但这会在任何名为clients的文件夹中运行测试:
yarn jest clients # also: yarn jest ./clients
xmq68pz97#
scripts: { ..., "test": "export NODE_ENV=development && jest" }
根据jest文档,如果NODE_ENV尚未设置,它将被设置为test。因此,如果您export它...它将传递到jest。
jest
NODE_ENV
test
export
7条答案
按热度按时间dgenwo3n1#
将目录名称作为参数添加
qojgxg4l2#
将配置添加到package.json。
https://jestjs.io/docs/configuration#testmatch-arraystring
kxkpmulp3#
在
./jest.config.js
中,您可以添加要搜索的目录数组6jygbczu4#
本文
https://bambielli.com/til/2018-09-09-moving-jest-config-out-of-root/
建议在config.js文件中执行类似的操作,我引用这篇文章:
nszi6y055#
[edit:如其他答案中所述,根测试目录可以是参数(例如
jest ... laratest
),在最初编写时,这不起作用]将
--rootdir
选项添加到命令中:jest --verbose --rootDir=laratest
或在脚本中:
正如@Dimitri所指出的,这将把laratest视为配置的位置,而不仅仅是测试的位置。
eit6fx6z6#
为了避免运行同名的其他目录,您必须指定目录。例如,这只运行
clients
中的测试:但这会在任何名为
clients
的文件夹中运行测试:xmq68pz97#
Mac解决方案(未在Windows上测试)
根据
jest
文档,如果NODE_ENV
尚未设置,它将被设置为test
。因此,如果您export
它...它将传递到jest
。