Karma输出重复测试结果

时间:2015-10-07 15:44:48

标签: karma-runner karma-jasmine

当运行测试时,karma似乎多次重复上一次测试,重复测试的次数似乎取决于测试次数和用于运行的浏览器。

如果仅使用一个浏览器(PhantomJS或Chrome)进行一次测试,则测试会显示两次,当使用两种浏览器时,相同的单次测试最多显示6次。

我已经在测试中添加了日志,每个浏览器每次测试都会发生一次日志,因此测试运行的次数可能正确,但只是重复显示的结果。

karma.conf.js

module.exports = function(config) {
  config.set({

    // base path that will be used to resolve all patterns (eg. files, exclude)
    basePath: '',


    // frameworks to use
    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
    frameworks: ['jasmine'],


    // list of files / patterns to load in the browser
    files: [
        '_test/test.js'
    ],


    // list of files to exclude
    exclude: [
    ],


    // preprocess matching files before serving them to the browser
    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
    preprocessors: {
    },


    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['progress'],


    // web server port
    port: 9876,


    // enable / disable colors in the output (reporters and logs)
    colors: true,


    // level of logging
    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
    logLevel: config.LOG_INFO,


    // enable / disable watching file and executing tests whenever any file changes
    autoWatch: true,


    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: ['PhantomJS', 'Chrome'],


    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: false
  })
}

test.js

describe('karma testing', function () {
    it('tests karma is working', function () {
        expect(true).toBe(true);
        console.log('test1');
    });
});

输出1浏览器(Chrome)

07 10 2015 16:41:14.890:INFO [karma]: Karma v0.13.10 server started at http://localhost:9876/
07 10 2015 16:41:14.897:INFO [launcher]: Starting browser Chrome
07 10 2015 16:41:16.364:INFO [Chrome 45.0.2454 (Windows 7 0.0.0)]: Connected on socket 0uvPocfSI0prGxwdAAAA with id 29520633
LOG: 'test1'
Chrome 45.0.2454 (Windows 7 0.0.0): Executed 1 of 1 SUCCESS (0 secs / 0.003 secs
Chrome 45.0.2454 (Windows 7 0.0.0): Executed 1 of 1 SUCCESS (0.011 secs / 0.003 secs)

输出2个浏览器(PhantomJS,Chrome)

07 10 2015 16:27:31.399:INFO [karma]: Karma v0.13.10 server started at http://localhost:9876/
07 10 2015 16:27:31.407:INFO [launcher]: Starting browser PhantomJS
07 10 2015 16:27:31.420:INFO [launcher]: Starting browser Chrome
07 10 2015 16:27:32.886:INFO [PhantomJS 1.9.8 (Windows 7 0.0.0)]: Connected on socket P5focoe7004aPX1rAAAA with id 49258591
07 10 2015 16:27:33.077:INFO [Chrome 45.0.2454 (Windows 7 0.0.0)]: Connected on socket BGtRdqevRGGXZTA-AAAB with id 42323971
LOG: 'test1'
PhantomJS 1.9.8 (Windows 7 0.0.0): Executed 1 of 1 SUCCESS (0 secs / 0.003 secs)
PhantomJS 1.9.8 (Windows 7 0.0.0): Executed 1 of 1 SUCCESS (0.007 secs / 0.003 s
PhantomJS 1.9.8 (Windows 7 0.0.0): Executed 1 of 1 SUCCESS (0.007 secs / 0.003 s
Chrome 45.0.2454 (Windows 7 0.0.0) LOG: 'test1'
PhantomJS 1.9.8 (Windows 7 0.0.0): Executed 1 of 1 SUCCESS (0.007 secs / 0.003 s
PhantomJS 1.9.8 (Windows 7 0.0.0): Executed 1 of 1 SUCCESS (0.007 secs / 0.003 secs)
PhantomJS 1.9.8 (Windows 7 0.0.0): Executed 1 of 1 SUCCESS (0.007 secs / 0.003 secs)
Chrome 45.0.2454 (Windows 7 0.0.0): Executed 1 of 1 SUCCESS (0.028 secs / 0.002 secs)
TOTAL: 2 SUCCESS

我已经安装了karma-cli并且没有安装了karma-cli,结果是相同的。

我已经查看了堆栈溢出和google,但有些人似乎遇到了类似问题,但没有有意义的答案。

2 个答案:

答案 0 :(得分:0)

在尝试使用美化剂时,我遇到了类似的问题。

karma.conf有几个选项,比如autoWatch,浏览器,singleRun - 对吗?其中有一个叫做客户的财产。

客户端属性是一个具有自己的一些属性的对象。其目的是配置与测试客户端相关的设置,例如Chrome。

客户端有一个名为captureConsole的属性。默认为true,这意味着浏览器中的任何控制台日志都会发送回您的bash。因此,默认情况下启用该功能,我看到了Chrome的控制台日志记录和经过美化的点按输出。

在您的设置中尝试此设置,看看它是否有帮助!

client: {
    captureConsole: false
},

答案 1 :(得分:0)

我知道这是多年前被问过的,但是你有没有机会从windows命令行运行业力?我有同样的问题,浪费了几个小时谷歌搜索,然后突然从powershell运行它,它工作得很好。还使用git bash。