모든 테스트가 실행된 후 농담 정리
Jest에서 다른 모든 테스트가 완료된 후에 실행되는 청소 또는 해체 태스크를 실행할 수 있습니까?setupFiles를 사용하여 테스트 실행 전 작업을 설정할 수 있는 방법과 유사합니다.테스트에 오류가 있는지 여부에 관계없이 실행할 수 있는 경우 보너스 점수입니다.
놓는 것afterAll(() => {})
파일의 최상위 수준(임의의 설명 기능 포함)에서는 특정 파일에서 테스트가 완료된 후에만 실행되는 것으로 나타납니다.
사용 예로는 개발 데이터베이스에 사용자를 생성하는 많은 테스트 파일이 있으며, 각 테스트 파일이 나중에 사용자를 정리하고 삭제하도록 하고 싶지 않습니다.오류는 쓰기 테스트 중에도 발생할 수 있으므로 오류에 관계없이 정리하는 것이 좋습니다.
남매의 갈고리가 있다setupFiles
모든 테스트 스위트 전에 너무 많이 발생하지만 테스트 러너(기본적으로는 Jasmine2)가 글로벌 환경을 초기화한 직후에 발생합니다.
라고 합니다.다음과 같이 사용합니다.
{
"setupFilesAfterEnv": ["<rootDir>/setup.js"]
}
setup.js의 예:
beforeAll(() => console.log('beforeAll'));
afterAll(() => console.log('afterAll'));
setup.js
아무것도 내보낼 필요가 없습니다.모든 테스트 스위트(모든 테스트 파일) 전에 실행됩니다.테스트 러너가 이미 초기화되어 있기 때문에 글로벌 기능은 다음과 같습니다.beforeAll
그리고.afterAll
일반 테스트 파일과 같은 범위 내에 있으므로 원하는 대로 호출할 수 있습니다.
인jest.config.js
:
module.exports = {
// ...
setupFilesAfterEnv: [
"./test/setup.js",
// can have more setup files here
],
}
인./test/setup.js
:
afterAll(() => { // or: afterAll(async () => { }); to support await calls
// Cleanup logic
});
주의:
- Jest 24.8을 사용하고 있습니다.
- 레퍼런스: setup Files After Env
모든 테스트 스위트가 완료된 후 몇 가지 작업을 수행하려면 globalTeardown을 사용합니다.예:
포장되어 있습니다.json:
{
"jest": {
"globalTeardown": "<rootDir>/teardownJest.js"
},
}
teardown Jest.js의 경우:
const teardown = async () => {
console.log('called after all test suites');
}
module.exports = teardown;
jest는 각 테스트복 및 해체 파일에 대해 모든 모듈을 처음부터 Import합니다.공식 문서:
디폴트로는 각 테스트파일은 독자적인 독립된 모듈레지스트리를 취득합니다.
따라서 각 테스트 스위트 또는 해체 파일에 대해 동일한 DB 모듈의 인스턴스를 공유할 수 없습니다.따라서 모든 테스트가 완료된 후 DB 연결을 닫으려면 이 방법이 작동하지 않습니다.
리포터라고 하는 기능이 있어, 다음과 같이 기능합니다.
언급URL : https://stackoverflow.com/questions/41316071/jest-clean-up-after-all-tests-have-run
'programing' 카테고리의 다른 글
nextjs에서 URL 경로 이름 가져오기 (0) | 2023.03.13 |
---|---|
동적 매개 변수를 사용하여 ui-module 확인 (0) | 2023.03.13 |
확인 이메일에 고객 이름 가져오기 (0) | 2023.03.13 |
eslint를 typescript와 함께 사용 - 모듈 경로를 확인할 수 없습니다. (0) | 2023.03.13 |
플럭스 스토어 또는 액션(또는 둘 다)이 외부 서비스에 접촉해야 합니까? (0) | 2023.03.13 |