首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >karma-沙司发射器断开每次测试运行的连接,导致与IE和Safari的运行失败。

karma-沙司发射器断开每次测试运行的连接,导致与IE和Safari的运行失败。
EN

Stack Overflow用户
提问于 2014-06-07 02:45:43
回答 1查看 2.4K关注 0票数 6

我已经有这个确切的问题已经有几个月了,通过多个版本的每个组件(业力,socket.io,酱油连接)。目前,我正在运行卡玛12.16。

基本上,当使用https://github.com/karma-runner/karma-sauce-launcher时,Safari和IE浏览器启动的每一个测试运行都会断开连接,只会导致部分测试运行。相关的业力日志是

代码语言:javascript
复制
Driving the web on session: abf7c976abf1420a9c72b3e06c655040    
DEBUG [wd]:  > RESPONSE init({"base":"SauceLabs","browserName":"internet explorer","platform":"Windows 8.1","version":"11","tags":[],"name":"Karma and Sauce Labs demo","record-video":false,"record-screenshots":true,"build":null,"device-orientation":null,"disable-popup-handler":true}) "abf7c976abf1420a9c72b3e06c655040",null
INFO [launcher.sauce]: internet explorer 11 (Windows 8.1) session at https://saucelabs.com/tests/abf7c976abf1420a9c72b3e06c655040
DEBUG [launcher.sauce]: WebDriver channel for internet explorer 11 (Windows 8.1) instantiated, opening http://localhost:9876/?id=15483642
DEBUG [wd]:  > CALL get("http://localhost:9876/?id=15483642") 
DEBUG [wd]:  > POST /session/:sessionID/url {"url":"http://localhost:9876/?id=15483642"}
DEBUG [web-server]: serving: /Volumes/OSXSTORAGE/Users/a/Dropbox/a/WebstormProjects/a-ui/node_modules/karma/static/client.html
DEBUG [web-server]: serving: /Volumes/OSXSTORAGE/Users/a/Dropbox/a/WebstormProjects/a-ui/node_modules/karma/static/karma.js
DEBUG [wd]:  > RESPONSE get("http://localhost:9876/?id=15483642") 
DEBUG [karma]: A browser has connected on socket xXySXoeppVtPhAr8FVR4
INFO [IE 11.0.0 (Windows)]: Connected on socket xXySXoeppVtPhAr8FVR4 with id 15483642
DEBUG [launcher]: internet explorer 11 (Windows 8.1) on SauceLabs (id 15483642) captured in 17.693 secs
DEBUG [web-server]: serving: /Volumes/OSXSTORAGE/Users/a/Dropbox/a/WebstormProjects/a-ui/node_modules/karma/static/context.html
DEBUG [web-server]: serving (cached): /Volumes/OSXSTORAGE/Users/a/Dropbox/a/WebstormProjects/a-ui/src/components/angular/angular.js
................................................................................
..............DEBUG [karma]: A browser has connected on socket mGf0VzQ8DKdfW_NSFVR5
DEBUG [IE 11.0.0 (Windows)]: New connection mGf0VzQ8DKdfW_NSFVR5 (already have xXySXoeppVtPhAr8FVR4)
WARN [IE 11.0.0 (Windows)]: Disconnected (1 times), because no message in 10000 ms.

IE 11.0.0 (Windows): Executed 94 of 94 DISCONNECTED (11.481 secs / 0.757 secs)
DEBUG [launcher.sauce]: Shutting down the internet explorer 11 (Windows 8.1) driver
DEBUG [wd]:  > CALL get("about:blank") 
DEBUG [wd]:  > POST /session/:sessionID/url {"url":"about:blank"}
DEBUG [karma]: Run complete, exitting.
DEBUG [launcher]: Disconnecting all browsers
DEBUG [wd]:  > RESPONSE get("about:blank") 
DEBUG [wd]:  > CALL quit() 
DEBUG [wd]:  > DELETE /session/:sessionID 
DEBUG [wd]: 
Ending your web drivage..

DEBUG [wd]:  > RESPONSE quit() 

我曾尝试将browserNoActivityTimeout提高到60000,但这只会导致测试在60岁后失败,而不是10秒。这些失败的每一个都有以下情况:

代码语言:javascript
复制
DEBUG [karma]: A browser has connected on socket mGf0VzQ8DKdfW_NSFVR5
DEBUG [IE 11.0.0 (Windows)]: New connection mGf0VzQ8DKdfW_NSFVR5 (already have xXySXoeppVtPhAr8FVR4)
WARN [IE 11.0.0 (Windows)]: Disconnected (1 times), because no message in 10000 ms.   
IE 11.0.0 (Windows): Executed 94 of 94 DISCONNECTED (11.481 secs / 0.757 secs)

根据浏览器的不同,有时它只执行50个测试(94个断开连接中的50个),而在其他情况下,它将执行所有测试,但仍然被认为是失败的测试运行。我从未见过Chrome或Firefox会出现这种情况。

完全相同的karma.conf文件每次都在本地运行,没有任何问题。有人遇到过这种情况吗?我已经接触到酱汁的支持,但他们开始坚持这是一个因果报应的问题。

Karma.conf:

代码语言:javascript
复制
var fs = require('fs');

module.exports = function(config) {

  // Use ENV vars on Travis and sauce.json locally to get credentials
  if (!process.env.SAUCE_USERNAME) {
    if (!fs.existsSync('sauce.json')) {
      console.log('Create a sauce.json with your credentials based on the sauce-sample.json file.');
      process.exit(1);
    } else {
      process.env.SAUCE_USERNAME = require('./../sauce').username;
      process.env.SAUCE_ACCESS_KEY = require('./../sauce').accessKey;
    }
  }

  // Browsers to run on Sauce Labs
  var customLaunchers = {

    sl_safari_ml: {
      base: 'SauceLabs',
      browserName: 'safari',
      platform: 'OS X 10.9'

    }
  };

  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: [
      'src/components/jquery/dist/jquery.js',
      'src/components/angular/angular.js',
      'src/components/angular-mocks/angular-mocks.js',
      'src/components/angular-cookies/angular-cookies.js',
      'src/components/angular-sanitize/angular-sanitize.js',
      'src/components/angular-ui-router/release/angular-ui-router.js',
      'src/components/angular-animate/angular-animate.js',
      'src/components/angular-strap/dist/angular-strap.js',
      'src/components/angular-strap/dist/angular-strap.tpl.js',
      'src/components/speakingurl/lib/index.js',
      'src/app/**/*.js',
      'src/app/common/templates/*.html'


    ],

    exclude: [
      'src/app/**/*.e2e.spec.js'

    ],
    ngHtml2JsPreprocessor: {
      stripPrefix: 'src/app/common/',
      moduleName: 'mywire.templates'
    },
    preprocessors: {
      // load templates
      'src/app/common/templates/*.html': ['ng-html2js']
    },
    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['dots'],


    // web server port
    port: 9876,

    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,

    sauceLabs: {
      testName: 'Karma and Sauce Labs demo',
      startConnect: false
    },
    browserNoActivityTimeout: 60000,
    captureTimeout: 120000,
    customLaunchers: customLaunchers,

    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: Object.keys(customLaunchers),
    singleRun: true
  });
};
EN

回答 1

Stack Overflow用户

发布于 2014-07-17 15:35:28

启动Karma版本0.12,增加了更多的超时设置。

将它们添加到我的业力配置中,为我解决了这个问题。

代码语言:javascript
复制
browserDisconnectTimeout
  • 类型:编号
  • 违约日期:2000年
  • 描述: Karma需要等待浏览器重新连接多长时间( ms)。有了零碎的连接,浏览器断开连接是很常见的,但是实际的执行却没有任何问题。业力并不将断开视为立即失败,而是等待browserDisconnectTimeout ms。如果浏览器在这段时间内重新连接,一切都很好。

-

代码语言:javascript
复制
browserDisconnectTolerance
  • 类型:编号
  • 缺省值:0
  • 描述:允许断开连接的次数。disconnectTolerance值表示浏览器在断开连接时尝试的最大尝试次数。通常,任何断开都被视为失败,但此选项允许在业力服务器和浏览器之间存在片状网络链接时定义容忍级别。

-

代码语言:javascript
复制
browserNoActivityTimeout
  • 类型:编号
  • 违约: 10000
  • 描述: Karma需要等待浏览器的消息多久才能断开连接(以ms表示)。如果在执行期间,Karma没有从browserNoActivityTimeout ms中的浏览器接收到任何消息,它将断开浏览器的连接。

来源:http://karma-runner.github.io/0.12/config/configuration-file.html

更多提示:http://oligofren.wordpress.com/2014/05/27/running-karma-tests-on-browserstack/

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24093155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档