2017-12-11 16 views
0

여러 브라우저를 병렬로 사용하여 BrowserStack에 대해 각도기를 실행 중입니다. 'https://www.browserstack.com/automate/protractor'의 '시험 속도 향상'섹션을 참조하십시오.멀티 테이블 기능이있는 각도기에 대한 오이 보고서를 여러 개 생성하는 방법은 무엇입니까?

위와 같은 결과는 좋지만 4 개의 webdriver 인스턴스를 사용하여 동일한 기능 파일을 병렬로 실행하면 1 html 오이 리포트가됩니다.

나는 여러 개의 json 파일을 생성 할 수있는 것으로 보이는 https://github.com/wswebcreation/protractor-multiple-cucumber-html-reporter-plugin을 봤지만 HTML 파일은 없다.

나는 각도기를 처음 사용합니다. 누구든지 몇 가지 제안이나 코드 변경 또는 플러그인을 제공 할 수 있습니까?

감사,

답변

0
var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter'); 
var JasmineReporters = require('jasmine-reporters'); 

exports.config = { 
    seleniumAddress: 'http://localhost:4444/wd/hub', 
    framework: 'jasmine2', 
    multiCapabilities: [ 
     { 
      browserName: 'chrome', 
      shardTestFiles: false, 
      maxInstances: 1, 
      specs: [ 
       './tmp/specs1.spec.js', 
       './tmp/specs2.spec.js' 
      ], 
      chromeOptions: { 
       args: [ 
        '--window-size=1920,1080'], 
       prefs: { 
        download: { 
         prompt_for_download: false, 
         default_directory: './downloads', 
        } 
       } 
      } 
     }, 
     { 
      browserName: 'chrome', 
      shardTestFiles: false, 
      maxInstances: 1, 
      specs: [ 
       './tmp/specs3.spec.js', 
       './tmp/specs4.spec.js' 
      ], 
      chromeOptions: { 
       args: [ 
        '--window-size=1920,1080'], 
       prefs: { 
        download: { 
         prompt_for_download: false, 
         default_directory: './downloads', 
        } 
       } 
      } 
     } 
    ], 
    allScriptsTimeout: 600000, 
    jasmineNodeOpts: { 
     defaultTimeoutInterval: 600000, 
     showColors: true 
    }, 
    onPrepare: function() { 
     browser.driver.getCapabilities().then(function(caps) { 
      browser.browserName = caps.get('browserName'); 
     }); 

     var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter'); 
     browser.getProcessedConfig().then(function(config) { 
      var capabilities = config.capabilities; 
      jasmine.getEnv().addReporter(
       new Jasmine2HtmlReporter({ 
        savePath: './reports/', 
        takeScreenshots: true, 
        screenshotsFolder: './screenshots', 
        filePrefix: 'protractor-demo-tests-report-' + capabilities.platform + '-' + capabilities.browserName, 
        consolidateAll: false, 
        takeScreenshotsOnlyOnFailures: true, 
       }) 
      ); 
     }); 

     var jasmineReporters = require('jasmine-reporters'); 
     return browser.getProcessedConfig().then(function(config) { 
      // you could use other properties here if you want, such as platform and version 
      var browserName = config.capabilities.browserName; 
      var junitReporter = new jasmineReporters.JUnitXmlReporter({ 
       consolidateAll: false, 
       savePath: 'reports/jUnitXmlReporter', 
       modifyReportFileName: function(generatedFileName, suite) { 
        return browserName + '.' + generatedFileName; 
       } 
      }); 
      jasmine.getEnv().addReporter(junitReporter); 
      //set window size to max available 
      setTimeout(function() { 
       browser.driver.executeScript(function() { 
        return { 
         width: window.screen.availWidth, 
         height: window.screen.availHeight 
        }; 
       }).then(function(result) { 
        browser.driver.manage().window().setPosition(0,0); 
        browser.driver.manage().window().setSize(result.width, result.height); 
       }); 
      }); 
     }); 
    } 
};