我用摩卡来测试我的JavaScript的东西。 我的测试文件中包含5次测试。 这有可能运行特定的测试(或一组测试),而不是文件中的所有测试?
Answer 1:
尝试使用摩卡的--grep
选项 :
-g, --grep <pattern> only run tests matching <pattern>
您可以使用任何有效的JavaScript正则表达式为<pattern>
。 举例来说,如果我们有test/mytest.js
:
it('logs a', function(done) {
console.log('a');
done();
});
it('logs b', function(done) {
console.log('b');
done();
});
然后:
$ mocha -g 'logs a'
为了运行单个测试。 请注意,这里grep在所有的名称describe(name, fn)
和it(name, fn)
调用。
请考虑使用嵌套的describe()
要求,以使其易于查找并选择特定的集命名空间。
Answer 2:
根据您的使用模式,你可能只是想只用。 我们使用TDD风格; 它看起来像这样:
test.only('Date part of valid Partition Key', function (done) {
//...
}
只有这个测试将所有的文件/套房运行。
Answer 3:
如果您正在使用npm test
(使用的package.json脚本)使用一个额外的--
通过对摩卡通过帕拉姆
如npm test -- --grep "my second test"
编辑 :看起来像--grep
可以稍微挑剔(可能取决于其他参数)。 您可以:
修改的package.json:
"test:mocha": "mocha --grep \"<DealsList />\" .",
或者选择使用--bail
这似乎是不太挑剔
npm test -- --bail
Answer 4:
嗨上述解决方案并没有为我工作。 运行单个测试的另一种方法是
mocha test/cartcheckout/checkout.js -g 'Test Name Goes here'
这有助于一个测试用例从一个单一的文件,并与特定的名称运行。
Answer 5:
运行单个测试-by filename-
其实,还可以通过运行一个名单摩卡测试(不只是“它() -字符串grepping”),如果删除了水珠图案(例如./test/**/*.spec.js
从摩卡) .opts,分别创建一个副本,而不:
node_modules/.bin/mocha --opts test/mocha.single.opts test/self-test.spec.js
这里是我的mocha.single.opts(这只是在缺少上述水珠线不同)
--require ./test/common.js
--compilers js:babel-core/register
--reporter list
--recursive
背景:虽然您可以从OPTS-文件来覆盖各种开关(开始--
你不能覆盖的水珠 。 这种联系也有一些解释。
提示:如果node_modules/.bin/mocha
迷惑你,使用本地包摩卡。 你也可以写只是mocha
,如果您有它全球的装机量。
如果你想要的舒适package.json
:还有:去掉**/*
您-ish水珠mocha.opts
,在这里插入他们,因为所有的测试,让他们走了单一测试:
"test": "mocha ./test/**/*.spec.js",
"test-watch": "mocha -R list -w ./test/**/*.spec.js",
"test-single": "mocha $1",
"test-single-watch": "mocha -R list -w $1",
用法:
> npm run test
分别
> npm run test-single -- test/ES6.self-test.spec.js
(介意--
Answer 6:
npm test <filepath>
例如:
npm test test/api/controllers/test.js
这里 '测试/ API /控制器/ test.js' 是文件路径。
Answer 7:
你可以试试“it.only”
it.only('Test one ', () => {
expect(x).to.equal(y);
});
it('Test two ', () => {
expect(x).to.equal(y);
});
在这第一个只会执行
Answer 8:
不知道为什么使用NPM测试时,grep的方法不适合我的工作。 这工作虽然。 我也还需要指定的测试文件夹的某些原因。
高空测试 - 测试/ sometest.js
Answer 9:
展望https://mochajs.org/#usage我们看到,简单地使用
摩卡测试/ MYFILE
将工作。 您可以省略末尾的” .js文件。
Answer 10:
整合所有的测试在一个test.js文件和你的包JSON添加脚本如下:
"scripts": {
"api:test": "node_modules/.bin/mocha --timeout 10000 --recursive api_test/"
},
在您的测试目录中键入命令:
npm run api:test