Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

multiCapabilities - multiReports #61

oscarbuho888 opened this issue Jun 6, 2017 · 1 comment

multiCapabilities - multiReports #61

oscarbuho888 opened this issue Jun 6, 2017 · 1 comment
enhancement @serenity-js/core


Copy link

@oscarbuho888 oscarbuho888 commented Jun 6, 2017

Hello everyone,

In this moment i am run the test cases with the option multiCapabilities of BrowserStack, thus the test cases run parallel. The problem is that only generate the report with the last browser that run. I would like to know if i can define diferents routes to generate a "Serenity" report for each browser in which the test cases are executed?

Then send my configuration:

var browserstack = require('browserstack-local');
const crew = require('serenity-js/lib/stage_crew');

exports.config = {

    baseUrl: '',

    allScriptsTimeout: 110000,
    seleniumAddress: '',
    framework: 'custom',
    //frameworkPath: require.resolve('protractor-cucumber-framework'),
    frameworkPath: require.resolve('serenity-js'),
    serenity: {
        dialect: 'cucumber',
        crew: [
            crew.Photographer.who(_ => _

    specs: [ 'features/**/*.feature' ],
    cucumberOpts: {
        require:    [ 'features/**/*.ts' ],
        format:     'pretty',
        compiler:   'ts:ts-node/register'

    'commonCapabilities': {
    'browserstack.user' : process.env.BROWSERSTACK_USERNAME || 'userName',
    'browserstack.key' : process.env.BROWSERSTACK_ACCESS_KEY || 'accesKey',
    'build': 'protractor-browserstack',
    'name': 'parallel_local_test',
    'browserstack.local': true,
    'browserstack.debug': 'true'

  'multiCapabilities': [{
    'browserName': 'Chrome'
    'browserName': 'Firefox'
    'browserName': 'IE'

   beforeLaunch: function(){
    console.log("Connecting local");
    return new Promise(function(resolve, reject){
      exports.bs_local = new browserstack.Local();
      exports.bs_local.start({'key': exports.config.commonCapabilities['browserstack.key'] }, function(error) {
        if (error) return reject(error);
        console.log('Connected. Now testing...');


  // Code to stop browserstack local after end of test
  afterLaunch: function(){
    return new Promise(function(resolve, reject){

    // so that every tests starts with a system in a known state
    //restartBrowserBetweenTests: true

  for(var i in exports.config.commonCapabilities) caps[i] = caps[i] || exports.config.commonCapabilities[i];
@jan-molak jan-molak added enhancement @serenity-js/core labels Jun 17, 2017
jan-molak added a commit that referenced this issue Jul 15, 2017
…an arbitrary tag

This feature will enable addressing #61

affects: @serenity-js/core
Copy link

@jan-molak jan-molak commented Jul 15, 2017

Hey @oscarbuho888! The latest version (1.8.0) should address this problem. Could you please take it for a spin when you have a moment and let me know what you think?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
enhancement @serenity-js/core
None yet

No branches or pull requests

2 participants