我是Karma的新手,但我想知道如何在浏览器中查看其输出(非常类似于与Jasmine交互的方式,当存在runner.html文件时)。
我观看了介绍性的截屏视频,我了解如何在控制台窗口中查看测试输出,但在我的浏览器中,除了
之外,我几乎没有内容为Karma业力 - 连接
请指教!我想避免维护一个单独的runner.html文件,因为Karma配置文件已经要求我包含所有必要的脚本链接。
答案 0 :(得分:27)
AFAIK,前两个答案是正确的,因为你想在浏览器中运行测试;单击DEBUG并在控制台中查看输出。
与上一个答案礼貌地相反,我经常使用Karma进行完全可变交互的逐步调试。
你问题的正确答案,因为你想要的是基于HTML的输出,是“不”。但是,这个业力插件可能会给你你想要的结果。
答案 1 :(得分:10)
您需要在singleRun = false
中使用karma.conf.js
运行它,然后点击右上角显示“DEBUG”的按钮。然后你应该看到输出,它不会消失或关闭。您还可以使用控制台进行调试。
值得注意的是,调试e2e测试并不容易,因为它们是“未来”的,所以你将无法拦截值(afaik)。
答案 2 :(得分:2)
一种选择是在浏览器中打开Javascript控制台。 Karma为每个测试创建一个日志条目,包括结果。
答案 3 :(得分:2)
我想用Karma显示HTML5 Web Notifications所以我快速写了一些东西,让它与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;
}
答案 4 :(得分:2)
嗨,在我的情况下,我通过安装karma-jasmine-html-reporter
并将其放入报告器数组解决了此问题。
npm i -D karma-jasmine-html-reporter
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'],
});
};