Chrome在业力中运行两次测试

时间:2014-07-17 12:54:05

标签: google-chrome karma-runner

在我的业力测试中使用Chrome时,我经常(超过50%的所有游戏)看到每个测试都由Chrome执行两次。您可以在下面找到示例输出和我的配置。

我怎么能阻止这个?原因是什么?

karma start --single-run --browsers Firefox,Chrome

INFO [karma]: Karma v0.12.17 server started at http://localhost:9876/
INFO [launcher]: Starting browser Firefox
INFO [launcher]: Starting browser Chrome

INFO [Chrome 36.0.1985 (Linux)]: Connected on socket RV8G8p63bCLQGaAJW9Hc with id 91444447
Chrome 36.0.1985 (Linux): Executed 0 of 92 SUCCESS (0 secs / 0 secs)
Chrome 36.0.1985 (Linux): Executed 1 of 92 SUCCESS (0 secs / 0.065 secs)
[...]
Chrome 36.0.1985 (Linux): Executed 91 of 92 SUCCESS (0 secs / 0.24 secs)
Chrome 36.0.1985 (Linux): Executed 92 of 92 SUCCESS (0 secs / 0.241 secs)
Chrome 36.0.1985 (Linux): Executed 92 of 92 SUCCESS (0.274 secs / 0.241 secs)
Chrome 36.0.1985 (Linux): Executed 93 of 92 SUCCESS (0.274 secs / 0.258 secs)
[...]
Chrome 36.0.1985 (Linux): Executed 183 of 92 SUCCESS (0.274 secs / 0.412 secs)
Chrome 36.0.1985 (Linux): Executed 184 of 92 SUCCESS (0.274 secs / 0.413 secs)

INFO [Iceweasel 30.0.0 (Linux)]: Connected on socket 4DISHs7012QeIwhEW9Hd with id 93232241

Chrome 36.0.1985 (Linux): Executed 184 of 92 SUCCESS (0.274 secs / 0.413 secs)
Iceweasel 30.0.0 (Linux): Executed 0 of 92 SUCCESS (0 secs / 0 secs)
Chrome 36.0.1985 (Linux): Executed 184 of 92 SUCCESS (0.274 secs / 0.413 secs)
Iceweasel 30.0.0 (Linux): Executed 1 of 92 SUCCESS (0 secs / 0.003 secs)
[...]
Iceweasel 30.0.0 (Linux): Executed 91 of 92 SUCCESS (0 secs / 0.201 secs)
Chrome 36.0.1985 (Linux): Executed 184 of 92 SUCCESS (0.274 secs / 0.413 secs)
Iceweasel 30.0.0 (Linux): Executed 92 of 92 SUCCESS (0 secs / 0.202 secs)
Chrome 36.0.1985 (Linux): Executed 184 of 92 SUCCESS (0.274 secs / 0.413 secs)
Iceweasel 30.0.0 (Linux): Executed 92 of 92 SUCCESS (0.303 secs / 0.202 secs)
TOTAL: 276 SUCCESS

配置:

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

    basePath : 'www',

    frameworks : [ 'jasmine' ],

    files : [ 'js/*' ],

    exclude : [ 'spec/lib/*.js' ],

    reporters : [ 'progress', 'junit', 'html', 'coverage' ],

    coverageReporter : {
      type : 'html',
      dir : 'coverage/'
    },

    preprocessors : {
      'js/*.js' : 'coverage',
    },

    junitReporter : {
      outputFile : 'test-results.xml'
    },

    colors : true,

    logLevel : config.LOG_INFO,

    autoWatch : true,

    browsers : [ 'Firefox', 'Chrome' ],

    captureTimeout : 20000,

    reportSlowerThan : 500,

    plugins : [ 'karma-jasmine', 'karma-coverage', 'karma-html-reporter', 'karma-chrome-launcher', 'karma-junit-reporter', 'karma-phantomjs-launcher', 'karma-firefox-launcher' ]

  });
};

6 个答案:

答案 0 :(得分:8)

我知道这是一个老问题,但对我来说问题是在karma配置文件中设置了reporters

我有: reporters: ['progress', 'dots', 'junit']

使用运行进度会导致测试运行两次(或者显示运行两次)。

所以解决办法是让其中一位记者离开。

答案 1 :(得分:3)

你可能有你的业力配置错误。它应该知道您的测试文件在哪里但不包括它们:

files : ['js/*']

可能需要更改为:

files : ['js/*.js',
         { pattern: 'tests/*.js', included: false }]

(这需要您的源文件位于./js/下,并且您的测试位于./tests/

之下

(我从[https://medium.com/@SchizoDuckie/so-your-karma-tests-run-twice-this-is-what-you-need-to-do-be74ce9f257e#.m3ci0m5vb]得到了这个,它对我有用)

答案 2 :(得分:1)

这件事恰巧是因为我打开了另一个Chrome标签并指向了Karma服务器。

答案 3 :(得分:0)

对我来说,Chrome在50%的情况下运行脚本两次,因为我没有favicon.ico。花了一天时间找出来:) 您的页面图标是否显示在Chrome浏览器中? 如果没有,Chrome会查找favicon.ico,如果您的网站返回404页面使用相同的php代码,Chrome会执行两次。

<link rel="icon" href="/favicon.ico" sizes="32x32" type="image/png" />

答案 4 :(得分:0)

你必须包括jasmine的boot.js,它运行自己的一组测试用例和karma测试用例

答案 5 :(得分:0)

这发生在我身上,因为我没有在我的Karma Run / Debug配置中指定浏览器。 在&#34;浏览器下指定开始&#34; (如下图所示)。

enter image description here