使用node.js和Mocha检测命令行调用

时间:2016-02-22 10:52:14

标签: node.js mocha

我试图找到一种方法来检测文件是否从命令行实例化,或者是否在mocha单元测试中是必需的。通常用

来做到这一点
if (require.main === module)

但我知道在使用Mocha时,require.module在Mocha中有一些dir,感谢this post

为什么我需要它:我正在编写单元测试并希望选择

  • 包括所有文件并在index.js
  • 中一次运行所有测试
  • 或一次运行单个文件测试。

以下是我想要做的基本想法(代码中)。有人知道如何调整此代码以获得我需要的功能吗?

index.js:

'use strict';

var chai = require('chai');
var expect = chai.expect;

var displayErrors = require("./displayErrors");

describe("Running all tests now...", function () {
    displayErrors();
});

displayErrors:

"use strict";

var displayErrors = require("../../bin/displayErrors");

function test () {
    describe("Testing displayErrors.js now...", function () {
        it("blah", function (done) {
            displayErrors(function (status, statusText) {
                expect(1).to.equal(1);
                done();
            });
        });
        it("blah", function (done) {
            displayErrors(function (status, statusText) {
                expect(1).to.equal(1);
                done();
            });
        });
    });
}

module.exports = test;

if (require.main === module) {
    var chai = require('chai');
    var expect = chai.expect;

    test();
}

1 个答案:

答案 0 :(得分:0)

在Mocha中,您不需要index.js。你可以这样做:

mocha // runs all tests
mocha -g blah // runs only tests with 'blah' in it or description