默认情况下,Mocha会尝试在test
下查找测试文件,如何指定另一个目录,例如server-test
发布于 2013-11-11 17:04:29
使用以下命令:
mocha server-test
或者,如果您有子目录,请使用以下命令:
mocha "server-test/**/*.js"
请注意双引号的使用。如果省略它们,您可能无法在子目录中运行测试。
发布于 2012-05-25 20:17:38
这里有一种方法,如果你的测试文件夹中有子文件夹,例如
/test
/test/server-test
/test/other-test
然后,在linux中,您可以使用find命令递归列出所有*.js文件,并将其传递给mocha:
mocha $(find test -name '*.js')
发布于 2018-06-18 13:22:26
最好的方法是在package.json中添加一个“测试”npm脚本,该脚本使用正确的参数调用mocha。这样,您的package.json也可以描述您的测试结构。它还避免了其他答案中的所有这些跨平台问题(双引号与单引号,"find“等)
要让mocha运行"test“目录中的所有js文件:
"scripts": {
"start": "node ./bin/www", -- not required for tests, just here for context
"test": "mocha test/**/*.js"
},
然后,为了只运行冒烟测试,调用:
npm test
您可以通过这种方式标准化所有项目中所有测试的运行,因此当新的开发人员开始处理您的项目或其他项目时,他们知道"npm test“将运行这些测试。这在历史上有很好的先例(例如,Maven,大多数老式的"make“项目也是如此)。当所有项目都有相同的测试命令时,它肯定有助于CI。
类似地,您可能有一个更快的“冒烟”测试的子集,您可能希望mocha运行:
"scripts": {
"test": "mocha test/**/*.js"
"smoketest": "mocha smoketest/**/*.js"
},
然后,为了只运行冒烟测试,调用:
npm smoketest
另一种常见的模式是将您的测试放在与它们测试的源文件相同的目录中,但将测试文件命名为*.spec.js。例如: src/foo/foo.spec.js测试src/foo/foo.js。
按照约定运行所有名为*.spec.js的测试:
"scripts": {
"test": "mocha **/*.spec.js"
},
然后调用以下命令来运行所有测试:
npm test
看到这里的模式了吗?好的。:)一致性击败了mura。
https://stackoverflow.com/questions/10753288
复制相似问题