いくつかのオプションのユニットを含む 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() { ... }
});
}
オプションのユニットのためのより良い、より一般的な解決策はありますか?