我有一个包含几个可选单元的 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() { ... }
});
}
对于可选单元是否有更好、更通用的解决方案?