programing

모든 테스트가 실행된 후 농담 정리

lastmoon 2023. 3. 13. 20:47
반응형

모든 테스트가 실행된 후 농담 정리

Jest에서 다른 모든 테스트가 완료된 후에 실행되는 청소 또는 해체 태스크를 실행할 수 있습니까?setupFiles를 사용하여 테스트 실행 전 작업을 설정할 수 있는 방법과 유사합니다.테스트에 오류가 있는지 여부에 관계없이 실행할 수 있는 경우 보너스 점수입니다.

놓는 것afterAll(() => {})파일의 최상위 수준(임의의 설명 기능 포함)에서는 특정 파일에서 테스트가 완료된 후에만 실행되는 것으로 나타납니다.

사용 예로는 개발 데이터베이스에 사용자를 생성하는 많은 테스트 파일이 있으며, 각 테스트 파일이 나중에 사용자를 정리하고 삭제하도록 하고 싶지 않습니다.오류는 쓰기 테스트 중에도 발생할 수 있으므로 오류에 관계없이 정리하는 것이 좋습니다.

남매의 갈고리가 있다setupFiles모든 테스트 스위트 전에 너무 많이 발생하지만 테스트 러너(기본적으로는 Jasmine2)가 글로벌 환경을 초기화한 직후에 발생합니다.

라고 합니다.다음과 같이 사용합니다.

{
    "setupFilesAfterEnv": ["<rootDir>/setup.js"]
}

setup.js의 예:

beforeAll(() => console.log('beforeAll'));
afterAll(() => console.log('afterAll'));

setup.js아무것도 내보낼 필요가 없습니다.모든 테스트 스위트(모든 테스트 파일) 전에 실행됩니다.테스트 러너가 이미 초기화되어 있기 때문에 글로벌 기능은 다음과 같습니다.beforeAll그리고.afterAll일반 테스트 파일과 같은 범위 내에 있으므로 원하는 대로 호출할 수 있습니다.

setupTestFrameworkScriptFile before All 및 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

반응형