我有一个相当简单的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并单击“Debug”,然后显示开发人员工具控制台。我希望将消息记录到终端,但我无法弄清楚如何使其正常工作。
答案 0 :(得分:69)
npm install karma-spec-reporter --save-dev
并添加我的karma.config.js
reporters: ['spec'],
默认情况下,Karma会将所有兄弟姐妹模块加载到它,并且它们的名称与karma - *匹配。
但是有些用户必须将以下内容添加到他们的配置
plugins: ['karma-spec-reporter']
答案 1 :(得分:2)
另一个细节 - 如果你保留默认的记者'进展'在 karma.config.js 中,如下所示:
reporters: ["progress", "spec"]
或其他控制台记者,"规范"记者输出没有工作。
你应该只保留"规范"一个,或者#34;规范"与其他浏览器记者。例如:
reporters: ["spec", "coverage"]
答案 2 :(得分:2)
您也可以使用Karma-mocha-reporter 作为记者,您的控制台中应该有干净的报告。
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'),
...
]
答案 3 :(得分:1)
这是我的工作(草稿)配置,没有插件'插件' (实际上我并不完全理解为什么我需要指定它们......):
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() ...)
个消息时,很好地显示在控制台中。
答案 4 :(得分:0)
我写了一个记者,使输出更具可读性: karma-helpful-reporter
有一些不错的自定义选项:https://github.com/whyboris/karma-helpful-reporter
内部安装说明,基本上是npm install --save-dev karma-helpful-reporter
,然后将其添加到Karma配置插件部分:
plugins: [
require('karma-helpful-reporter')
],
reporters: [ 'helpful' ],