代码之家  ›  专栏  ›  技术社区  ›  Andrew S

伊斯坦布尔和摩卡对我的节点给出了“参考错误:未定义套件”。JS项目测试

  •  0
  • Andrew S  · 技术社区  · 7 年前

    我正在使用伊斯坦布尔Mocha和Chai断言库在节点上执行单元测试和代码覆盖率测试。js项目。我正在一台Linux服务器上运行,我有一个帐户。

    我能够使用Mocha在测试驱动开发(TDD)和行为驱动开发(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
    

    我还能够使用以下代码在BDD测试中运行伊斯坦布尔:

    ./node_modules/.bin/istanbul cover --reporter=text ./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 tdd -R spec qa/tdd_Person.js
    

    我的节点项目中也安装了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测试在伊斯坦布尔失败了,但在所有其他情况下都有效,而我的BDD测试总是有效的呢。伊斯坦布尔有什么我遗漏的吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Andrew S    6 年前

    所以,经过这么长时间,我找到了答案,并想向大家汇报。显然,缺少的是摩卡咖啡后的两个破折号。以下是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是敏感的。这让我想知道这是一个bug还是一个特性。