当jasmine在测试文件中遇到异常时,Node.js给出退出代码4

时间:2018-02-14 13:34:23

标签: node.js jasmine

考虑一个茉莉花测试文件

throw new Error("error");

describe("simple suite", function () {

    it("simple test", function () {
        var result = "";
        expect(result).toBe("1");
    });

});

这个javascript文件

var Jasmine = require('jasmine');
var jasmine = new Jasmine();


try {
    jasmine.execute("./simple_test.js");
}
catch (e) {
    process.exit(1);
}

运行命令node main.js并使用echo $?检查退出代码我不断获取退出代码4而不是退出代码1.

这个退出代码很重要,因为我通过我的程序生成一个节点进程,我需要在这种情况下通过我的脚本控制退出代码。

1 个答案:

答案 0 :(得分:0)

在我调试

时遇到jasmine.js中的这段代码时解决了我自己的问题
var checkExit = function(jasmineRunner) {
  return function() {
    if (!jasmineRunner.completionReporter.isComplete()) {
      process.exitCode = 4;
    }
  };
};

Jasmine.prototype.execute = function(files, filterString) {
  process.on('exit', this.checkExit);

由于spec文件无效且jasmine从未遇到任何测试套件或测试方法要执行,因此强制进程退出代码4