Istanbul and Mocha give 'Reference Error: suite is not defined' with my Node.JS project tests

Istanbul and Mocha give 'Reference Error: suite is not defined' with my Node.JS project tests

我正在使用 Istanbul with Mocha 和 Chai 断言库对 Node.js 项目执行单元测试和代码覆盖率测试。我正在 运行 宁在我有帐户的 Linux 服务器上。

我能够运行使用以下两个命令在测试驱动开发 (TDD) 和行为驱动开发 (BDD) 风格中使用 Mocha 成功地进行我的单元测试:

./node_modules/.bin/_mocha -u tdd -R spec qa/tdd_Person.js
./node_modules/.bin/_mocha -u bdd -R spec qa/bdd_Person.js

我还可以 运行 伊斯坦布尔的 BDD 测试,代码如下:

./node_modules/.bin/istanbul cover --reporter=text ./node_modules/.bin/_mocha -u bdd -R spec qa/bdd_Person.js

但是,当我尝试通过我的 TDD 测试 运行 伊斯坦布尔时,我在我的测试 JavaScript 中的第一个套件实例上得到 'Reference Error: suite is not defined' 代码:

./node_modules/.bin/istanbul cover --reporter=text ./node_modules/.bin/_mocha -u tdd -R spec qa/tdd_Person.js

我还在我的 Node 项目中安装了 NYC,并且可以 运行 我的 TDD 和 BDD 都可以使用以下命令完美测试:

./node_modules/.bin/nyc --reporter=text ./node_modules/.bin/_mocha -u tdd -R spec qa/tdd_Person.js
./node_modules/.bin/nyc --reporter=text ./node_modules/.bin/_mocha -u bdd -R spec qa/bdd_Person.js

那么,为什么我的 TDD 测试在 Istanbul 上失败了,但在所有其他情况下都有效,而我的 BDD 测试却始终有效。关于伊斯坦布尔,我有什么想念的吗?

所以,经过这么长时间我找到了答案并想报告。显然缺少的是摩卡咖啡后的两个破折号。以下是 tdd 和 bdd 开发的示例。

行为驱动开发风格测试:

./node_modules/.bin/istanbul cover --reporter=text ./node_modules/.bin/_mocha -- -u bdd -R spec qa/bdd_Person.js

测试驱动开发风格测试:

./node_modules/.bin/istanbul cover --reporter=text ./node_modules/.bin/_mocha -- -u tdd -R spec qa/tdd_Person.js

似乎 bdd 风格的测试对两个破折号的省略不敏感,但 tdd 是。这让我想知道这是错误还是功能。