如何使用Mocha进行单个testing?
我使用摩卡来testing我的JavaScript的东西。 我的testing文件包含5个testing。 是否有可能运行一个特定的testing(或一组testing),而不是文件中的所有testing?
尝试使用摩卡的--grep
选项 :
-g, --grep <pattern> only run tests matching <pattern>
您可以使用任何有效的JavaScript正则expression式作为<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'
运行一个testing。 请注意,这个grep跨所有describe(name, fn)
和it(name, fn)
调用的it(name, fn)
。
考虑使用命名空间的嵌套的describe()
调用,以便于定位和select特定的集合。
根据您的使用模式,您可能只喜欢使用。 我们使用TDD风格; 它看起来像这样:
test.only('Date part of valid Partition Key', function (done) { //... }
只有这个testing将从所有的文件/套件运行。
如果您使用npm test
(使用package.json脚本),请使用extra --
将parameter passing给mocha
例如npm test -- --grep "my second test"
编辑 :看起来像 – --grep
可以有点挑剔(可能取决于其他参数)。 您可以:
修改package.json:
"test:mocha": "mocha --grep \"<DealsList />\" .",
或者使用--bail
这似乎不那么挑剔
npm test -- --bail
您好上面的解决scheme没有为我工作。 运行单一testing的另一种方式是
mocha test/cartcheckout/checkout.js -g 'Test Name Goes here'
这有助于从单个文件和特定名称运行testing用例。
不知道为什么在使用npmtesting时grep方法不适用于我。 这工作虽然。 由于某种原因,我也需要指定testing文件夹。
npm test – test / sometest.js
运行单个testing-by文件名 –
实际上,如果你从你的摩卡中删除glob模式(例如./test/**/*.spec.js
),你也可以通过文件名 (不只是通过“it() – string-grepping”)来运行一个单一的摩卡testing.opts分别创build一个副本,不需要:
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
背景:虽然您可以覆盖opts-File(以--
开头)的各种开关,但不能覆盖glob 。 那个链接也有一些解释。
提示:如果node_modules/.bin/mocha
混淆你,使用本地包mocha。 你也可以写mocha
,如果你有全球安装。
如果你想要package.json
的舒适度:仍然:从你的mocha.opts
删除**/*
-ish glob,将它们插入到这里,进行全部testing,把它们留给单个testing:
"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
(介意--
!)
npm test <filepath>
例如:
npm test test/api/controllers/test.js
这里“test / api / controllers / test.js”是文件path。
- 我如何正确地testing摩卡和柴的承诺?
- 如何从node.js中的一个“npm test”命令运行mocha和mocha-phantomjstesting?
- 如何解决“ReferenceError:期望未定义”的错误信息?
- `before()`和`beforeEach()`有什么区别?
- 在RSpec中如何说“any_instance”“should_receive”任意次数
- 清理容易的sinon存根
- 用Mochatestingjavascript – 我如何使用console.log来debuggingtesting?
- debugging摩卡testing的阻力最小的path是什么?
- 如何模拟一个ES6模块的import?