在 gulp 任务中使用业力获取报告

getting a report using karma in gulp task

我有一个测试任务,这里是:

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

在命令行上没问题。但是,我想要在某些文件中生成更详细的报告,其中测试是 运行 和 succeeded/failed 等。我不是在寻找一些 xml 或任何特殊的东西。只是一个文本文件,对于打开文件的人来说是可读的。

我知道有很多记者可供选择,但我很难选择最好的一位。此外,我不确定如何将它集成到 gulp 任务中。

提前致谢。

  1. 如果你想生成输出文件 and/or 使用 PhantomJS,那么我建议使用 karma-html-reporter : npm install --save-dev karma-html-reporter

    • karma.conf.js中:reporters: ['html']
  2. 如果您在 Chrome 或 Firefox 等浏览器中启动测试,那么我喜欢 karma-jasmine-html-reporter。要查看输出,您需要单击浏览器 top-right 角的 DEBUG 按钮:npm install --save-dev karma-jasmine-html-reporter

    • karma.conf.js中:reporters: ['html']
  3. 或者您可以同时使用两者: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版本; link 解释了如何操作。 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