2013-09-11 4 views
15

Я использую Karma для тестирования моего проекта и могу видеть тесты, проходящие с ошибкой в ​​окне консоли, однако, как их получить в браузере? Браузер имеет только зеленый бар (даже если тест не удается) сВывод тестов в браузер с помощью 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' 
     } 

    }) 
} 

ответ

0

Accroding к Documention, даже не очень совершенны:

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

0

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

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

+0

Я недавно опубликовал «karma-code-reporter' для npm. если кто-то проверит это, я буду очень рад :) –

7

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

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

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

plugins: [ 
'karma-htmlfile-reporter' 
] 
+1

Кажется, есть ошибка с атрибутом плагинов, переопределяющим devDependencies. Как только я добавил все зависимости к атрибуту плагинов ('karma-jasmine' и 'karma-chrome-launcher'), я прекратил получать ошибки при запуске, но результаты соответствуют карме без плагина. – david004

+1

У меня также были проблемы с плагинами - без провайдера для фреймворка Jasmine - однажды я прокомментировал запись плагинов, с которой она работала –

+0

Это выводит результаты только в файл, а не в окно, в котором выполняются тесты. – Jason

0

Я хотел показать HTML5 Web Notifications с кармой, так что я написал что-то быстро чтобы он работал с кармой версии 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; 
} 
Смежные вопросы