Javascript 如何在控制台中获得更好的测试报告?
我有一个相当简单的karma.config.js文件Javascript 如何在控制台中获得更好的测试报告?,javascript,node.js,karma-jasmine,karma-runner,Javascript,Node.js,Karma Jasmine,Karma Runner,我有一个相当简单的karma.config.js文件 basePath = '../'; files = [ JASMINE, JASMINE_ADAPTER, 'js/lib/angular*.js', 'test/lib/angular/angular-mocks.js', 'js/**/*.js', 'test/unit/**/*.js' ]; autoWatch = true; browsers = ['PhantomJS']; 当我运行karma st
basePath = '../';
files = [
JASMINE,
JASMINE_ADAPTER,
'js/lib/angular*.js',
'test/lib/angular/angular-mocks.js',
'js/**/*.js',
'test/unit/**/*.js'
];
autoWatch = true;
browsers = ['PhantomJS'];
当我运行
karma start config/karma.conf.js——单次运行时,我得到以下输出
$ karma start config/karma.conf.js --single-run
[2013-06-24 23:47:08.750] [DEBUG] config - autoWatch set to false, because of singleRun
INFO [karma]: Karma server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9 (Mac)]: Connected on socket id LwMoWxzIbSUuBsvIqB_m
PhantomJS 1.9 (Mac): Executed 6 of 6 SUCCESS (0.073 secs / 0.02 secs)
我一直在搜索一些东西来告诉我如何获得记录的测试的输出(例如,成功单元:服务myService应该表现出来
)
我能看到测试输出的唯一方法是打开Chrome并单击“调试”,然后显示开发者工具控制台。我希望将消息注销到终端,但我无法确定如何使其正常工作。通过安装
npm安装karma spec reporter——保存开发人员
并将此添加到my karma.config.js
记者:['spec'],
据
默认情况下,Karma加载所有NPM模块,这些模块是它的同级模块,并且它们的名称与Karma-*匹配
但是一些用户不得不在他们的配置中添加以下内容
插件:['karma-spec-reporter']
这是我的工作(草稿)配置,没有“插件”部分(实际上我不完全理解为什么需要指定它们……):
package.json
"devDependencies": {
[...]
"grunt-karma": "~0.9.0",
"karma": "~0.12.24",
"karma-jasmine": "~0.2.3",
"karma-chrome-launcher": "~0.1.5",
"karma-phantomjs-launcher": "~0.1.4",
"karma-spec-reporter": "0.0.13"
}
karma.conf.js
grunfile.js
现在,当我运行grunt karma
时,来自*-spec.js
文件(description('message',function())
)的消息会很好地显示在控制台中。只是另一个细节-如果您在karma.config.js中保留默认的报告程序“progress”,如下所示:
reporters: ["progress", "spec"]
或者另一个控制台报告器,“spec”报告器输出将无法工作
您应该只保留“spec”一个,或者将“spec”与其他浏览器报告器一起保存。例如:
reporters: ["spec", "coverage"]
您也可以使用
作为一名记者,你应该在控制台中有一份干净的报告
npm i karma-mocha-reporter --save-dev
// karma.conf.js
module.exports = function(config) {
config.set({
frameworks: ['jasmine'],
// reporters configuration
reporters: ['mocha']
});
};
有时,例如,在@angular/cli
环境中,您应该需要如下所示:
plugins: [
...
require('karma-mocha-reporter'),
...
]
我写了一篇记者文章,让文章更具可读性:karma-Helped reporter
有一些很好的自定义选项:
安装内部说明,基本上是npm安装--保存dev karma help reporter
,然后添加到karma配置插件部分:
plugins: [
require('karma-helpful-reporter')
],
reporters: [ 'helpful' ],
这个问题真是太糟糕了。如果我没记错的话,我是在花了太长时间才把那个标题打出来的。谷歌搜索的不仅仅是标题,这是一件好事。@brettof86有人弄乱了这个问题的标题。在阅读问题本身时,它显然与HTML无关。我本来想换个标题,但想了一会儿,我觉得我对这个问题还不够了解,无法做到这一点。(我不清楚的是,你是否在寻找一个简单的报告机制,或者你是否想从测试本身中获取某种形式的输出。)你能修改它吗?你是对的,它与HTML无关。我在找一个控制台记者,特别是《卡玛规范》记者。我再次编辑了标题并删除了“HTML”。直到我在karma.conf.js文件karma spec reporter中指定为插件,它才对我起作用;这就是我的插件阵列的外观插件:[‘karma chrome launcher’、‘karma coverage’、‘karma firefox launcher’、‘karma jasmine’、‘karma junit reporter’、‘karma spec reporter’],请注意结尾处的karma spec reporter是的,您必须告诉配置您正在使用此插件。如果您的所有插件都以karma-
开头,那么您不必引用任何插件。默认行为是加载所有karma-*
插件。与@blues_驱动和brettof86描述的一样。此处相同。。必须添加插件。。我继续并建议对这个答案进行编辑。这真的很好。谢谢分享。没错,我也有同样的问题。记者:[“规格”、“覆盖范围”]作品
plugins: [
...
require('karma-mocha-reporter'),
...
]
plugins: [
require('karma-helpful-reporter')
],
reporters: [ 'helpful' ],