2014-06-13 4 views
1

컨트롤러/라우터에 대한 간단한 단위 테스트를 작성했지만 인턴으로 실행할 수는 없습니다. 라우터 모듈은 다른 모듈을로드해야합니다. 이 경우 pace.js를 사용했고 인턴의 config 파일에 로더/패키지의 의존성을 추가해야했습니다 ... Pace 모듈을로드했지만 인턴의 러너가 '참조 오류 : 창이 정의되지 않았습니다' . 페이스 모듈은 브라우저에서 실행해야하지만 인턴 ... 나는 다음과 같은 명령을 사용하고 노드 컨텍스트에서 실행하는 것 같다 intern unit test : 브라우저 컨텍스트가 필요한 모듈을로드 중입니다.

node node_modules/intern/client.js config=test/intern 

나는, 즉 this answer을 시도했다. 로더/패키지에서 Pace 모듈을 꺼내서 인턴이 호스트 브라우저 컨텍스트에있는 경우에만 테스트 케이스를 추가했습니다.하지만 인턴이 내 테스트 케이스를 건너 뜁니다. if (has) 블록에 입력 할 수 없으므로 ... 여기 있습니다 intern.js에 추가 한 코드 :

var suites = []; 
suites.push('test/unit/all'); 

if (has('host-browser')) { 
    suites.push('test/unit/app/controller/Router'); 
} 

return { 
// ... 
    suites: suites, 
// ... 
}; 

인턴이 노드로 컨텍스트를 전환하는 것처럼 보이지만 어떻게 브라우저에서 유지할 수 있습니까?

답변

2

client.js은 Node.js에서 테스트를 실행하는 Intern 's node.js 클라이언트입니다. 브라우저에서 테스트를 실행하려면 client.html을 사용하거나 runner.js을 사용하여 테스트를 실행하고 Selenium과 같은 WebDriver 서버를 실행해야합니다.