私はいくつかのAVAテストを複数回実行しようとしていますが、異なるモックで実行しています。たとえば、同じ5つのテストを実行したいが、これらのテストはさまざまな構造化されたデータに対して確実に機能するようにする。Macで動作する関数内でAVAテストが呼び出されましたが、Linuxでは動作しません
import test from 'ava';
import * as fs from 'fs';
let mockSampleEmail;
let mockDecomposedEmail;
function readJsonFile(fname) {
return JSON.parse(fs.readFileSync(fname).toString());
}
fs.readdir('pre', (err, files) => {
files.forEach(file => {
if (!file.match(/\.json$/)) {
return null;
}
mockSampleEmail = readJsonFile("pre/" + file);
mockDecomposedEmail = readJsonFile("post/" + file);
runEmailDecomposerTests(mockSampleEmail, mockDecomposedEmail, mockRiskyUpdates, file);
})
})
runEmailDecomposerTests機能は次のようになります:
const runEmailDecomposerTests = (mockSampleEmail, mockDecomposedEmail, mockRiskyUpdates, fname) => {
test(`(${fname}) Converts the email message received from the websocket into a simple email object`, t => {
//Assertions here
})
}
を私はテストファイルにモックをインポートすると、次のようになり、それらが出て解析する必要がありますどのようにそれらを比較する方法を考案しました私のディレクトリ構造は次のようになります。
test/
--emails/
----emailDecomposer.spec.js
----pre/
------sampleEmail.json
----post/
------sampleEmail.json
このすべては私のMac上でローカルに動作しますが、私は継続的な統合をテストするために、当社のジェンキンスサーバーにそれを押すと、それが失敗しました
✖ No tests found in test/emails/emailDecomposer.spec.js
runEmailDecomposerTests関数が確実に呼び出されていることは確認できますが、混乱する部分は、それが私のMacにローカルに渡ることです。 jenkinsサーバーはLinux VMですので、私はmac/linuxの問題に傾いていますが、私は確信が持てません。さらに、約5倍の1分の1がCIサーバ上を通過するため、何らかの競合状態になる可能性があります。 AVAのドキュメントから
私はjenkinsではないLinux VMでテストしましたが、同様の問題があります。だから間違いなくlinux – user1821149