我有一個包含幾個可選單元的Node.js軟件。每個可選單元都要求用戶下載並安裝某個第三方軟件。其他(非可選)單位在沒有第三方的情況下工作。可選單元的單元測試
現在,我爲所有單位(包括可選單位)設置了一套Mocha.js單元測試。所有測試都通過我的電腦,因爲我已經安裝了所有第三方。但是,如果一個天真的用戶下載我的軟件包並運行測試,他會因爲缺少第三方而收到難看的錯誤消息。
安排測試的最佳方式是什麼?對於每個用戶,只有相關的測試將運行?
目前,我使用的代碼與此類似:
try {
var thirdparty = require('thirdparty');
var isTestRelevant = true;
} catch (e) {
console.warn("WARNING: no thirdparty module - can't run this unitest");
var isTestRelevant = false;
}
if (isTestRelevant) {
describe('the unit', function() {
it('does something', function() { ... }
});
describe('the unit', function() {
it('does something else', function() { ... }
});
}
是否有可選單元一個更好的,更通用的解決方案?
謝謝你,這是比我以前的解決方案要好得多。有什麼辦法可以讓我在報告中添加一條自定義消息,例如:「 - 將false視爲不正確**因爲您沒有安裝false.js模塊,所以此測試已被禁用**「? –
@ErelSegalHalevi不客氣。這是可能的,儘管它使情況更加混亂。 :)我用一個例子更新了我的答案。 –
謝謝!我認爲你的答案應該是Mocha.js的標準功能:) –