Вывод тестов в браузер с кармой

Я использую Karma для тестирования моего проекта и вижу, что тесты проходят через провал в окне консоли, однако как я могу их показать в браузере? Браузер имеет только зеленую полосу (даже если тест не работает) с помощью

Карма v0.10.2 - связанная

Написано в нем.

Я пробовал addong singleRun :false в файле karma.config.js.

Файл конфигурации выглядит следующим образом:

module.exports = function (config) {
    config.set({
        basePath: '../',

        files: [
            'app/lib/angular/angular.js',
            'app/lib/angular/angular-*.js',
            'test/lib/angular/angular-mocks.js',
            'app/js/**/*.js',
            'test/unit/**/*.js'
        ],

        autoWatch: true,
        singleRun: false,
        frameworks: ['jasmine'],

        browsers: ['Chrome'],

        plugins: [
            'karma-junit-reporter',
            'karma-chrome-launcher',
            'karma-firefox-launcher',
            'karma-jasmine'
        ],

        junitReporter: {
            outputFile: 'test_out/unit.xml',
            suite: 'unit'
        }

    })
}

Ответы

Ответ 1

matthias-schuetz написал плагин, который утверждает, что он выводит результат теста html.

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

Наряду с инструкциями на странице плагина мне пришлось включить ссылку на плагин в конфигурации Karma -

plugins: [
'karma-htmlfile-reporter'
]

Ответ 2

Подтверждение Документация, даже не очень совершенная:

Если "singleRun" является ложным, он включит ci-mode, поэтому сделайте это правдой, и вы увидите кратковременное состояние красных статусов в верхних барах.

Ответ 3

Нет прямого способа сделать это с помощью кармы. "Лучшим" способом решения этой проблемы было бы hunker down и написать html-репортер для кармы (что сделало бы нас очень интересными для других пользователей Karma).

Если это слишком много для вас, вторая вещь - использовать репликатор junit, который генерирует XML файл. Затем вы можете обработать XML файл каким-то образом, превратив его в HTML файл, который вы можете просмотреть в своем браузере.

Ответ 4

Я хотел показать HTML5 Web Notifications с кармой, поэтому я написал что-то быстрое, чтобы заставить его работать с кармой версии 0.11. Может показаться немного отличающимся от других версий. Я загружаю этот script с остальными сценариями моего приложения, он будет хранить результаты теста кармы, и после его завершения он будет определять успех теста, а затем reset для исходных функций кармы, чтобы они не менялись, когда этот script снова запускается.

// 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;
}