2016-02-22 16 views
0

我正试图找到一种方法来检测文件是否从命令行实例化,或者如果它是在摩卡咖啡单元测试中需要的。通常,一个做到这一点与使用node.js和Mocha检测命令行调用

if (require.main === module) 

,但我知道,使用摩卡时,该require.module是摩卡感谢this post内的一些dir

为什么我需要它:我写单元测试,并希望任

  • 选项包括所有文件和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(); 
} 

回答

0

在摩卡,你不需要你的index.js。你可以这样做:

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