2014-06-07 2 views
6

관련된 각 구성 요소 (karma, socket.io, sauce-connect)의 여러 버전을 통해 몇 달 동안이 정확한 문제가 발생했습니다. 현재 나는 카르마 12.16을 운영 중입니다.karma-sauce-launcher가 모든 테스트 실행을 끊어 IE와 Safari로 실행에 실패했습니다.

기본적으로 https://github.com/karma-runner/karma-sauce-launcher을 사용할 때 Safari 및 IE 브라우저는 모든 단일 테스트 실행을 끊어서 일부 테스트 만 실행했습니다. 관련 카르마 로그 내가 60000에 browserNoActivityTimeout을 증가 시도

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() 

이지만, 그것은 단지 60 대신 10 초 후 실패 테스트 결과. 실패한 이들 하나 하나는 다음과 같습니다 때때로 그것은 단지 (50 94 DISCONNECTED의 실행 됨) 50 개 테스트를 실행, 브라우저에 따라

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) 

, 그리고 다른 사람에 고려되어야 여전히 모든 테스트를 실행하지만 것 시운전에 실패했습니다. Chrome이나 Firefox에서 이러한 현상이 발생하는 것을 본 적이 없습니다.

정확한 karma.conf 파일은 매번 문제없이 로컬에서 실행됩니다. 누구든지이 문제가 발생 했습니까? 나는 saucelabs 지원에 손을 뻗쳤지만, 이것이 카르마 - 소스 - 발사기 문제라고 주장하기 시작했습니다.

Karma.conf :

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 
    }); 
}; 

답변

10

카르마 버전 0.12 시작은 좀 더 시간 제한 설정이 추가가 있습니다.

내 카르마 설정에 추가하면 나를 위해이 문제가 해결되었습니다.

browserDisconnectTimeout 
  • 형태 : Number
  • 기본 : 2000
  • 설명 : 카르마가 브라우저에 대한 (밀리 초) 다시 연결하는 것을 기다릴 않는 시간입니다. 비정상적인 연결로 꽤 브라우저 의 연결이 끊어 지지만 실제 실행은 아무런 문제없이 을 실행 중입니다. 카르마는 연결 해제를 즉시 실패로 간주하지 않고 browserDisconnectTimeout ms를 기다립니다. 이 시간 동안 브라우저를 다시 연결하면 모든 문제가 해결됩니다.

-

browserDisconnectTolerance 
  • 형태 : Number
  • 기본값 : 0
  • 설명 : 허용 단선의 수입니다. disconnectTolerance 값은 연결이 끊어진 경우 브라우저가 시도 할 최대 시도 횟수를 나타냅니다. 일반적으로 연결 끊김은 오류로 간주되지만이 옵션을 사용하면 카르마 서버와 브라우저간에 비정상적인 네트워크 연결이있을 때 허용 한계를 정의 할 수 있습니다.

-

browserNoActivityTimeout 
  • 형태 : Number
  • 기본값 : 10000
  • 설명 : 카르마가 (밀리 초)을 분리하기 전에 브라우저에서 메시지를 기다리는 않는 시간입니다. 실행 중에 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/

관련 문제