2014-07-14 2 views
1

각도기를 사용하여 Angular 웹 사이트의 테스트를 끝내지 만 Jenkins가 읽을 수있는 파일 (JUnitXmlReporter)로 결과를 내보내려고합니다. 이 내가 "OnPrepare입니다"내 각도기 설정 파일에 "간단한 변경을"해야 할 일을합니다 :Nodejs 각도기 + Jasmine + JUnitXmlReporter는 브라우저를 기다리지 않고 테스트를 실행합니다.

exports.config = { 
    // Do not start a Selenium Standalone sever - only run this using chrome. 
    framework: 'jasmine', 
    // Capabilities to be passed to the webdriver instance. 
    capabilities: { 
    'browserName': 'chrome' 
    }, 

    specs: [ 
    './test1.js', 
    './test2.js' 
    ], 
    // Options to be passed to Jasmine-node. 
    jasmineNodeOpts: { 
    showColors: true, 
    isVerbose: true 
    }, 
    onPrepare: function() { 
     var jasmineReporters = require('jasmine-node-reporter-fix'); 
     jasmine.getEnv().addReporter(
      new jasmineReporters.JUnitXmlReporter('protractor_output', true, true, 'testresults.e2e.'); 
    } 
}; 

을하지만 브라우저를 기다리지 않고이 "OnPrepare입니다"코드, 모든 테스트 실행을 추가하면 html을 렌더링하려면. "onPrepare"코드를 제거하면 모든 테스트가 예상대로 작동하기 시작하지만 jenkins 용 파일이 생성되지 않습니다.

어떤 아이디어가 잘못 되었나요?

답변

0

브라우저의 약속을 기다려야 할 수 있습니다. 당신은 당신이 jasmine 객체 오프 JUnitXmlReporter하지 jasmineReporters 호출 할 필요가 있습니다, 각도기를 사용하는 경우 말했다

onPrepare: function() { 
    var jasmineReporters = require('jasmine-node-reporter-fix'); 
    var capsPromise = browser.getCapabilities(); 
    capsPromise.then(function (caps) { 
    jasmine.getEnv().addReporter(
     new jasmineReporters.JUnitXmlReporter(
     'protractor_output', true, true, 'testresults.e2e.'); 
    } 
} 

. node-jasmine 또는 jasmine-node-reporter-fix을 사용하지 않으므로 기자가 어떻게 내보내 졌는지 말할 수는 없지만 "jasmine-reporters":"~1.0.0"에 기자는 여전히 jasmine 개체에 연결되어 있습니다.

https://github.com/larrymyers/jasmine-reporters#protractor

관련 문제