我有一个测试任务,这里是:
gulp.task('test', function (done) {
return new Server({
configFile: __dirname + '/karma.conf.js',
singleRun: true
}).start();
});
工作正常。问题在于它产生的输出非常有限:
IE 11.0.0 (Windows 7 0.0.0): Executed 2 of 2 SUCCESS
在命令行上没问题。但是,我想在一些文件中生成更详细的报告,这些文件运行了哪些测试,哪些成功/失败等等。我不是在寻找一些xml或任何特殊的东西。只是一个人类可以读取的文本文件。
我知道有很多记者可供选择,但我无法选择最好的记者。此外,我不知道如何将其整合到gulp任务中。
提前致谢。
答案 0 :(得分:1)
如果您想制作输出文件和/或使用PhantomJS,那么我建议使用karma-html-reporter:npm install --save-dev karma-html-reporter
karma.conf.js
:reporters: ['html']
如果您在Chrome或Firefox等浏览器中启动测试,那么我喜欢karma-jasmine-html-reporter。要查看输出,您需要点击浏览器右上角的DEBUG按钮:npm install --save-dev karma-jasmine-html-reporter
karma.conf.js
:reporters: ['html']
或者您可以同时使用:npm install --save-dev karma-html-reporter Nocomm/karma-jasmine-html-reporter
karma.conf.js
:reporters: ['html', 'kjhtml']
就Gulp而言,您可以利用karma
node_module而不必安装gulp-karma
。您需要使用npm安装gulp-jasmine
。我喜欢Gulp4.x,但你必须在用npm安装它时指定你想要的gulp版本;该链接说明了如何执行此操作。 Gulp 4.X为您提供并行或顺序运行任务的选项。如果您使用的是早期版本的gulp,则忽略上一个语句中的gulp.series
,而是使用列表封装这两个任务:('jasmine', 'karma')
。
var gulp = require('gulp'),
karma = require('karma').Server,
jasmine = require('gulp-jasmine');
gulp.task('karma', function(done) {
new karma({
configFile: __dirname + '/karma.conf.js',
singleRun: false
}, done).start();
});
gulp.task('jasmine', function() {
return gulp.src('client/tests/**/*.spec.js')
.pipe(jasmine());
});
gulp.task('test', gulp.series(
'jasmine',
'karma'
));
然后运行gulp test
。