使用Mocha API测试线束

时间:2018-11-23 11:52:25

标签: node.js unit-testing mocha chai

我正在为一个库构建一个自动构建过程,该过程要求组成它的所有模块都具有自己的单元测试,每个单元测试均由不同的作者编写。在构建器启动之前,我想调用一个执行以下两项操作的测试工具:

  1. 设置chai.expect用作断言库。
  2. 修改了一些JS原型以进行测试(例如,设置侦听器数组并进行触发,或调用jsDOM)。

尽管这通常可以通过命令行来实现,但我想避免不得不调用bash脚本来运行带有一系列选项的mocha。这样做是错误的,您不需要在JS脚本中调用bash。另外,我希望单元测试的结果可以确定构建是否可以继续进行,也许还可以提醒模块的作者测试存在问题。

我当前的代码看起来与Mocha团队here提供的示例基本相同。

测试文件结构如下:

test
    ├── testRunner.js
    └── unitTests
        ├── test1.js
        ├── test2.js
        ├── test3.js

对于上述目标1,我尝试在testRunner文件中简单地const expect = require("chai").expect;,但是当测试运行时,失败并显示“未定义期望”。

对于目标2,我尝试使用API documentation中描述的事件来建立一些测试所需的修改后的原型,但没有成功。想法是模拟多个测试套件中存在的多个相同的beforeafter调用。

API文档没有使用示例,尝试监听所描述的事件是行不通的,这可能是因为我正在监听错误的内容。像这样:

...(code from the example linked above)


// Run the tests.
let mochaRunner = mocha.run(function(failures){
    process.exitCode = failures ? 1 : 0;  // exit with non-zero status if there were failures
});

    mochaRunner.on('start', function(eventObj){
    console.log(eventObj);
});

也许整个方法是错误的,任何帮助都是值得赞赏的。

0 个答案:

没有答案