2016-10-24 2 views
1

테스트 스위트에서 일부 설정을 수행 할 때 생성 된 html 파일을 디버깅해야하는 경우가 있습니다. 그렇게하기 위해 debug button카르마 : 파일 서버에 캐시가 없음

, 나는 karma start --no-single-run을 실행

은 좋은 일이다하는 디버그 기능이있다.

하지만 만드는 모든 파일 변경에 내가 프로세스를 종료하고 다시 시작해야

는 달리, 캐시 파일이 제공됩니다 :

cached

가 어떻게이 특정 상황에서 캐싱 서버를 방지 할 수 있습니다 ? 어쨌든 대부분의 경우 single-run 모드로 실행되므로 캐싱이별로 관심이 없습니다.

감사

답변

0

--auto-watch 도움이 될 수 있습니다 : 당신은 어떤 파일을 변경하는 경우

karma start --no-single-run --auto-watch 

이, 카르마 주자는 그 후 다시 자동으로 테스트를 실행 다시로드 (캐시)됩니다. 그 후에 debug.html 페이지를 새로 고치면 karma-runner를 다시 시작하지 않고도이 파일의 새 버전을 얻을 수 있습니다.

+0

하지만 파일을 캐시해야하는 이유는 무엇입니까? 한번로드하는 대신 모든 요청에 ​​파일 내용을로드하는 일반 웹 서버를 설치하는 것만 큼 까다 롭지 않습니까? –

+0

카르마는 '자동 감시'모드를 염두에두고 캐시를 사용합니다. 카르마 러너 (Karma-runner)는 가능한 한 빨리 테스트를 다시 시작하려고합니다. 그러면 모든 파일이 캐시에 보관되고 다시로드되는 것만 변경됩니다. – idmitme

+0

고맙습니다 @SphDev 그러나 이것은 카르마에 대한 실행 구성으로 IntelliJ에서 테스트를 실행할 때 도움이되지 않았습니다. –

1

IntelliJ에서 테스트를 실행할 때이 문제가있는 경우 workaround을보십시오.

function runTests() { 
    var serverPort = cli.getServerPort(); 
    var urlRoot = cli.getUrlRoot() || '/'; 
    if (urlRoot.charAt(urlRoot.length - 1) !== '/') { 
    urlRoot = urlRoot + '/'; 
    } 
    runWithConfig({ 
    port: serverPort, 
    refresh: false,  // set this flag to true 
    urlRoot: urlRoot 
    }); 
} 

karma-intellij 플러그인에서 알려진 문제는 아직 확정되지 않았습니다.

관련 문제