여러 번 실행하려고하는 일부 AVA 테스트가 있지만 다른 테스트는 실행 중입니다. 예를 들어, 동일한 5 개의 테스트를 실행하려고하지만이 테스트가 다양하게 구조화 된 데이터에 대해 작동하는지 확인하십시오.AVA 테스트는 Mac에서는 작동하지만 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 함수가 확실히 호출되고 있음을 확인할 수는 있지만. 혼란스러운 부분은 그것이 내 맥에 로컬로 전달됩니다. 젠킨스 서버는 리눅스 VM이기 때문에 내가 맥/리눅스 문제에 기울고있는 이유는 확실하지만 확신 할 수는 없다. 심지어 CI 서버에 5 분의 1이 전달되기 때문에 어떤 종류의 경쟁 조건이 될 수 있습니까? 에바의 문서에서
jenkins가 아닌 Linux VM에서 테스트 한 결과 비슷한 문제가 있습니다. 그래서 확실히 리눅스 – user1821149