Development Tip

브라우저에서 Karma 테스트 출력을 보시겠습니까?

yourdevel 2020. 10. 27. 23:35
반응형

브라우저에서 Karma 테스트 출력을 보시겠습니까?


저는 Karma를 처음 접했지만 브라우저에서 출력을 보는 방법이 궁금합니다 (runner.html 파일이있을 때 Jasmine과 상호 작용하는 방식과 유사).

입문 스크린 캐스트를보고 콘솔 창에서 테스트 출력을 보는 방법을 이해했지만 브라우저에서는 Karma에 대한 콘텐츠가 거의 없습니다.

Karma-연결됨

조언하십시오! Karma 구성 파일에는 이미 필요한 모든 스크립트 링크를 포함해야하므로 별도의 runner.html 파일을 유지 관리 할 필요가 없습니다.


AFAIK, 이전 두 가지 답변은 브라우저에서 테스트를 실행하려는 점에서 정확합니다. 디버그를 클릭하고 콘솔에서 출력을 봅니다.

이전 답변과 정중하게 모순되는 나는 Karma를 사용하여 전체 변수 상호 작용으로 정기적으로 이것을 수행하고 단계별 디버그를 수행합니다.

원하는 것은 HTML 기반 출력이기 때문에 질문에 대한 올바른 대답은 "아니오"입니다. 그러나이 카르마 플러그인은 원하는 결과를 제공 할 수 있습니다.

https://npmjs.org/package/karma-html-reporter


당신은 그것을 실행할 필요가 singleRun = false있는 karma.conf.js다음 "DEBUG가"라는 상단 모서리에있는 버튼을 클릭합니다. 그러면 출력이 표시되고 사라지거나 닫히지 않습니다. 콘솔을 사용하여 디버깅 할 수도 있습니다.

e2e 테스트 디버깅은 "미래"기반이므로 값 (afaik)을 가로 챌 수 없기 때문에 쉽지 않습니다.


안녕하세요 제 경우 karma-jasmine-html-reporter에는 기자 배열 에 설치 하고 배치 하여이 문제를 해결 했습니다.

  • 설치 npm i -D karma-jasmine-html-reporter
  • 기자에 'kjhtml'을 추가하십시오.
  • 더하다 client:{clearContext:false}

var gulpConfig = require('./build/build.conf')();
module.exports = function (config) {
    config.set({
        browsers: ['Chrome'],
        basePath: './',
        plugins: [
          // all other plugins
          'karma-jasmine-html-reporter'
        ],
        colors: true,
        client: {
            clearContext: false    // will show the results in browser once all the testcases are loaded
        },
        frameworks: ['jasmine', 'jasmine-sinon', 'sinon'],
        files: [].concat(
            gulpConfig.deps.lib,
            'js/**/*mother*.js',
            'js/**/*mother.*.js',
            'js/**/*.tests.js'
        ),
        logLevel: config.LOG_INFO,
        reporters: ['kjhtml', 'progress', 'coverage'],
    });
};


한 가지 옵션은 브라우저에서 Javascript 콘솔을 여는 것입니다. Karma는 결과를 포함하여 각 테스트에 대한 로그 항목을 만듭니다.


Karma와 함께 HTML5 웹 알림 을 표시하고 싶었 으므로 Karma 버전 0.11에서 작동하도록 빠르게 작성했습니다. 다른 버전과 약간 다르게 작동 할 수 있습니다. 나머지 응용 프로그램 스크립트와 함께이 스크립트를로드하면 카르마 테스트 결과가 저장되고 완료 후 테스트의 성공 여부를 확인한 다음 원래 카르마 기능으로 재설정되므로이 스크립트가 실행될 때 변경되지 않습니다. 다시.

// store all my test results
var results = [];
// Wrap the karma result function
var resultFunc = window.__karma__.result;
window.__karma__.result = function(result){
    // run the original function
    resultFunc(result);
    // push each result on my storage array
    results.push(result);
}

// wrap the karma complete function
var completeFunc = window.__karma__.complete;
window.__karma__.complete = function(result){
    // run the original function
    completeFunc(result);
    // determine success
    var success = results.every(function(r){ return r.success });

    if (success) {
        // display a success notification
    }
    else {
        // display a test failure notification
    }

    // reset the result function
    window.__karma__.result = resultFunc;
    // reset the complete function
    window.__karma__.complete = completeFunc;
}

참고 URL : https://stackoverflow.com/questions/16344361/view-karma-test-output-in-a-browser

반응형