2016-02-22 15 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