我正在使用Istanbul与Mocha和Chai断言库在Node.js项目上执行单元测试和代码覆盖测试。我在Linux帐户上运行,我有一个帐户。
我可以使用以下两个命令成功地在测试驱动开发(TDD)和行为驱动开发(BDD)风格中使用Mocha运行我的单元测试,如下所示:
delay()
我也可以使用以下代码在BDD测试中运行伊斯坦布尔:
./node_modules/.bin/_mocha -u tdd -R spec qa/tdd_Person.js
./node_modules/.bin/_mocha -u bdd -R spec qa/bdd_Person.js
但是,当我尝试使用我的TDD测试运行伊斯坦布尔时,我得到一个参考错误:套件未定义'在我的测试JavaScript代码中的套件的第一个实例:
./node_modules/.bin/istanbul cover --reporter=text ./node_modules/.bin/_mocha -u bdd -R spec qa/bdd_Person.js
我也在我的Node项目中安装了NYC,可以使用以下命令完美地运行我的TDD和BDD测试:
./node_modules/.bin/istanbul cover --reporter=text ./node_modules/.bin/_mocha -u tdd -R spec qa/tdd_Person.js
那么为什么我的TDD测试在伊斯坦布尔失败但在所有其他情况下工作,但我的BDD测试始终有效。伊斯坦布尔有什么遗漏吗?
答案 0 :(得分:0)
因此,在所有这些时间之后,我找到了答案并想报告。显然缺少的是摩卡咖啡后的两个破折号。以下是开发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则敏感。这让我想知道这是错误还是功能。