如何在控制台中获得更好的测试报告
How to get better test reports in the console?
我有一个相当简单的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 start config/karma.conf.js --single-run
时,我得到以下输出
$ 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)
我一直在寻找一些东西来告诉我如何获得记录的测试的输出(例如SUCCESS Unit: services myService should behave
)
我能看到测试结果的唯一方法是打开Chrome并单击"调试",然后显示开发工具控制台。我想把消息注销到终端,但我不知道如何让它工作。
通过安装因果报应规范报告程序修复
npm install karma-spec-reporter --save-dev
并添加这个我的karma.config.js
reporters: ['spec'],
根据因果报应文件
默认情况下,因果报应加载所有与其同级的NPM模块,并且它们的名称与因果报应匹配。
但是有些用户不得不在配置中添加以下内容
plugins: ['karma-spec-reporter']
另一个细节-如果您在karma.config.js中保留默认的报告程序"progress",如下所示:
reporters: ["progress", "spec"]
或者另一个控制台报告程序,"spec"报告程序输出将不起作用。
您应该只保留"spec"一个,或者与其他浏览器报告器一起保留"spec"。例如:
reporters: ["spec", "coverage"]
我写了一个报告程序来提高输出的可读性:因果报应有用的报告程序
有一些不错的自定义选项:https://github.com/whyboris/karma-helpful-reporter
Instal指令在里面,基本上是npm install --save-dev karma-helpful-reporter
,然后添加到Karma配置插件部分:
plugins: [
require('karma-helpful-reporter')
],
reporters: [ 'helpful' ],
您也可以使用Karma mocha报告程序作为记者,您应该在控制台中有一个干净的报告。
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'),
...
]
这是我的工作(草案)配置,没有"插件"部分(实际上我不完全理解为什么我需要指定它们…):
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
module.exports = function (config) {
config.set({
frameworks: ['jasmine'],
reporters: ['spec'],
browsers: ['PhantomJS']
});
};
Gruntfile.js
karma: {
options: {
configFile: 'karma.conf.js',
files: [
'app/libs/angular.js',
'app/libs/angular-resource.js',
'app/libs/angular-route.js',
[...]
'app/modules/**/*-spec.js'
]
},
unit: {
singleRun: true
}
}
现在,当我运行grunt karma
时,来自*-spec.js
文件(describe('message', function() ...)
)的消息会很好地显示在控制台中。
- 有没有更好的动手、具体的方法来学习Javascript
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- 在JavaScript中拆分日期字符串的更好方法是什么
- 为什么$.brower被弃用?还有什么更好的替代方案
- 设置嵌套对象属性的更好方法
- 您有更好的动态方式来缩短复杂的代码jquery吗
- 用Javascript重新格式化复杂文本日期字符串的更好方法
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 动态更改测试中代码覆盖率的require语句的更好方法
- 什么是上下文中静态类型javascript的示例,以更好地进行单元测试
- 更好的是:测试事件处理程序是否绑定或直接使用 .off()
- 在测试JavaScript时,有比setTimeout更好的方法来等待asnyc回调
- 如何在控制台中获得更好的测试报告
- Nightwatch:比.pause(1000)更好的方法来避免脆弱的测试
- 在茉莉花2中处理异步测试的更好方法
- 使因果报应测试看起来更好(或者更像rspec)
- Regex测试,有更好的方法写这个吗
- 测试对象中是否存在嵌套属性的更好方法
- 一个更好的测试base64 URI支持(我可以在JS中创建一个大的base64编码的图像吗?)
- Node.js如何使用mocha获得更好的异步测试错误消息