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

时间:2016-01-07 17:35:21

标签: javascript gulp karma-runner karma-jasmine

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

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任务中。

提前致谢。

1 个答案:

答案 0 :(得分:1)

  1. 如果您想制作输出文件和/或使用PhantomJS,那么我建议使用karma-html-reporter:npm install --save-dev karma-html-reporter

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

    • karma.conf.jsreporters: ['html']
  3. 或者您可以同时使用:npm install --save-dev karma-html-reporter Nocomm/karma-jasmine-html-reporter

    • karma.conf.jsreporters: ['html', 'kjhtml']
  4. 就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