我用Mocha来测试我的JavaScript东西。我的测试文件包含5个测试。是否可以运行一个特定的测试(或一组测试),而不是文件中的所有测试?


当前回答

嗨,上面的解决方案对我不起作用。 运行单个测试的另一种方法是

mocha test/cartcheckout/checkout.js -g 'Test Name Goes here'

这有助于从单个文件和特定名称运行测试用例。

其他回答

不知道为什么grep方法在使用npm测试时不适合我。不过这是可行的。出于某种原因,我还需要指定测试文件夹。

npm test -- test/sometest.js

查看文档,我们看到简单地使用:

mocha test/myfile

将工作。你可以省略结尾的'.js'。

嗨,上面的解决方案对我不起作用。 运行单个测试的另一种方法是

mocha test/cartcheckout/checkout.js -g 'Test Name Goes here'

这有助于从单个文件和特定名称运行测试用例。

执行single test - by filename -

实际上,如果你从你的mocha中删除glob模式(例如./test/**/*.spec.js),你也可以通过文件名(而不仅仅是通过" it()-string-grepping ")来运行一个单独的mocha测试。选项,分别创建一个副本,没有:

node_modules/.bin/mocha --opts test/mocha.single.opts test/self-test.spec.js

这是我的mocha.single.opts(唯一的不同是错过了前面提到的glob行)

--require ./test/common.js
--compilers js:babel-core/register
--reporter list
--recursive

背景:虽然你可以覆盖options - file中的各种开关(从——开始),但你不能覆盖glob。这种联系也有 一些解释。

提示:如果node_modules/.bin/mocha让你感到困惑,请使用本地包mocha。你也可以只写mocha,如果你全局安装了它。


如果你想要舒适的包装。仍然:从摩卡中删除**/*-ish glob。选项,将它们插入这里,用于所有测试,将它们留给单个测试:

"test": "mocha ./test/**/*.spec.js",
"test-watch": "mocha -R list -w ./test/**/*.spec.js",
"test-single": "mocha",
"test-single-watch": "mocha -R list -w",

用法:

> npm run test

分别

> npm run test-single -- test/ES6.self-test.spec.js 

注意——它将后面的任何文本链接到NPM脚本

将所有测试合并到一个test.js文件中,并在package.json中添加一个脚本:

"scripts": {
  "api:test": "node_modules/.bin/mocha --timeout 10000 --recursive api_test/"
},

在你的测试目录下输入这个命令:

npm run api:test