0

테스트 용으로 karma/mocha/chrome headless를 사용하고 있습니다.하나의 테스트 슈트에 필요한 js 파일을 분리합니다.

--js 1 
document.addEventListener('test', ...); 
do sth more. 

--js 2 
document.addEventListener('test', ...);  
do sth more differently. 

-- test suite 1 
    require(test1) 
    i am dispatching the test event here to test js 1 

-- test suite 2 
    require(test2) 
    I am dispatchinh the test event here to test js 2 

문제는이 두 파일을 현재 전역 적으로 사용할 수 있다는 것입니다. 테스트 스위트 2를 실행할 때 js1과 js2 이벤트 모두 js1이 여전히 전역 적으로 사용 가능하기 때문에 디스패치를 ​​수신합니다.

내 완벽한 시나리오가 될 것입니다. 테스트 스위트 1에 js1을로드하고 거기에 캡슐화하십시오. 해키 방법은 테스트가 실행 된 후 제거하는 것입니다.

제 질문은 필요한 js 파일이 하나의 테스트 제품군 범위에 로컬로로드되는지 확인하는 것입니다. 기본적으로 특정 테스트 스위트에 대한 네스 캐 캐리 파일 만로드하고 나머지 테스트 스위트와 격리시킨다.

감사합니다.

답변

1

질문을 올바르게 이해하면 모듈을 관련 테스트 파일에 적용하고 싶습니까? 그런 경우

당신은 다음처럼 모듈을로드 할 수

const sharedModule = require('some/shared/module'); 

describe('some test', function() { 
    const scopedModule = require('some/path/to/module'); 

    it('should...', function() { 
     // Test code... 
    }) 

) 

이 그 블록 내부의 범위되고, 테스트 실행을 시작하는 경우에만로드되는 모듈을 초래할 것입니다.