2014-06-07 32 views
6

ile başarısız olan çalışmalarla sonuçlanan her bir test çalışmasının bağlantısını keser Aylar boyunca, her bir bileşenin birden fazla sürümü (karma, socket.io, sos-connect) aracılığıyla bu tam sorunu yaşıyorum. Şu anda Karma 12.16 üzerinde koşuyorum. Temel olarak, https://github.com/karma-runner/karma-sauce-launcher kullanırken, Safari ve IE tarayıcıları her bir test çalıştırmasının bağlantısını keserek yalnızca bir kısmi test çalıştırmasıyla sonuçlandı. İlgili Karma günlüğü Ben 60000 browserNoActivityTimeout artan çalıştılarkarma-sos-launcher, IE ve Safari

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

olduğunu, ama bu sadece 60'lar yerine 10s sonra başarısız testler ile sonuçlanır. Başarısız Bunların her biri aşağıdaki sahiptir: bazen sadece (50 94 bağlantısız ait Executed) 50 testleri çalıştırır, tarayıcıya bağlı

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) 

ve başkalarına o düşünülebilir hala tüm testleri yürütmek, ancak bir başarısız test çalıştırması. Bunu Chrome veya Firefox'ta hiç görmedim.

Tam olarak aynı karma.conf dosyası, sorun olmadan yerel olarak her zaman çalışır. Bununla karşılaştı mı? Soslalar desteğine ulaştım, ancak bunun bir karma sos fırlatıcısı sorunu olduğu konusunda ısrar etmeye başladılar.

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

cevap

10

Karma sürüm 0.12 başlayarak biraz daha zaman aşımı ayarları eklendi vardır.

Bunları karma yapılandırmamma eklemek benim için bu sorunu çözdü.

browserDisconnectTimeout 
  • Tür: Number
  • Standart: 2000
  • Açıklama: Karma Bir tarayıcı için (ms) yeniden bağlanmayı bekleyin ne kadar zaman. Kesintili bir bağlantı ile tarayıcının bağlantısının kesildiği, ancak gerçek uygulamanın hiçbir sorun yaşamadan yayıldığı güzel . Karma, bir kopukluğu anında hata olarak algılamaz ve daha doğrusu tarayıcıyıDisconnectTimeout ms olarak beklemez. Bu süre zarfında tarayıcı yeniden bağlanırsa, her şey yolundadır.

-

browserDisconnectTolerance 
  • Tür: Number
  • Varsayılan: 0
  • Açıklama: tolere kopma sayısı. DisconnectTolerance değeri, tarayıcının bağlantı kopması durumunda çalışacağı maksimum deneme sayısını temsil eder. Genellikle herhangi bir kopukluk bir hata olarak kabul edilir, ancak bu seçenek karma sunucu ve tarayıcılar arasında bir kesikli ağ bağlantısı olduğunda bir tolerans seviyesi tanımlamak için izin verir.

-

browserNoActivityTimeout 
  • Tür: Number
  • Varsayılan: 10000
  • Açıklama: Karma (ms) bağlantısını kesmeden önce bir tarayıcıdan gelen bir mesaj beklemek ne kadar zaman. Yürütme sırasında, Karma, tarayıcıNoActivityTimeout ms içindeki bir tarayıcıdan herhangi bir ileti almazsa, tarayıcının bağlantısını keser.

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

fazla ipucu: http://oligofren.wordpress.com/2014/05/27/running-karma-tests-on-browserstack/