Вывод тестов в браузер с кармой
Я использую 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;
}