当使用cucumberopts格式作为Json时,浏览器立即关闭量角器黄瓜测试

时间:2017-09-21 15:42:07

标签: json testing protractor cucumber report

我正在进行Protractor黄瓜测试并尝试使用量角器 - 多重黄瓜-html-reporter-plugin生成报告。

但是当我在配置文件中使用format:json:result.json时,浏览器(chrome)会在测试开始运行后立即关闭,并显示报告中传递的所有测试用例。

但是我以这样的方式编写了场景,一些测试用例应该失败。这只发生在我使用format:json:result.json in cucumberOpts。

当我使用格式:'漂亮'时,浏览器工作正常,它显示所有测试用例的运行,并且还显示正确数量的测试用例通过和失败。

请找到我的配置文件

const path = require('path');
exports.config = {
directConnect: true,
framework: 'custom',
frameworkPath: require.resolve('protractor-cucumber-framework'),
cucumberOpts: {
    require: [
         'maths.js',
    ],
    // Tell CucumberJS to save the JSON report
    format: 'json:.tmp/results.json',
    strict: true
},

specs: [
    '*.feature'
],

multiCapabilities: [{
    browserName: 'chrome',
    shardTestFiles: true,
    maxInstances: 2,
    chromeOptions: {
        args: ['disable-infobars']
    }
}],

// Here the magic happens
plugins: [{
    package: 'protractor-multiple-cucumber-html-reporter-plugin',
    options:{
         automaticallyGenerateReport: true,
         removeExistingJsonReportFile: true
    }
}]

};

2 个答案:

答案 0 :(得分:0)

当您在一个步骤中调用callback()函数时,黄瓜会执行该步骤但等待量角器完成它。 量角器以异步方式运行,因此您必须构建如下步骤:

this.Then(/^I title contains angularjs$/, function () {
    // Write code here that turns the phrase above into concrete actions
    return browser.getCurrentUrl().then(function (text) {
      expect(text).to.eventually.contains('nonAngular');
    })
  });

您还需要添加cucumberOpts:

require: "./path/to/step_definition/*.js",

答案 1 :(得分:0)

尝试将以下内容添加到conf.js中解决了我的问题

onPrepare: function () {        
    browser.ignoreSynchronization = true;       
    browser.waitForAngular();           
    browser.driver.manage().timeouts().implicitlyWait(30000);       
}