gpt4 book ai didi

javascript - 如何从 Protractor [3.0.0] 和 cucumber 最新版本中获取 cucumber-test.json

转载 作者:行者123 更新时间:2023-11-29 15:29:16 25 4
gpt4 key购买 nike

module.exports = function JsonOutputHook() {
var Cucumber = require('cucumber');
var JsonFormatter = Cucumber.Listener.JsonFormatter();
var fs = require('fs');

JsonFormatter.log = function (json) {
fs.writeFile('../reports/cucumberReport.json', json, function (err) {
if (err) throw err;
console.log('json file location: ../reports/cucumberReport.json');
});
};
this.registerListener(JsonFormatter);
};

我正在使用此代码生成 json,但 cucumber 步骤未更新通过失败状态。

虽然测试用例失败了,但结果显示为通过。尽管我在执行后添加了一个钩子(Hook),但 json 也没有得到更新。

请帮助我,这样我就可以用 Protractor 运行 cucumber-js 来获取 json。我想生成正确的报告。

这是我的场景:使用有效帐户成功登录

Given I go on "http://store.demoqa.com/products-page/your-account/"
When I input user and password
Then I should see "Logout" link

步骤定义文件

'use strict';

var myStepDefinitionsWrapper = function () {
var chai = require('chai');
var chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
var expect = chai.expect;

this.Given(/^I go on "([^"]*)"$/,{timeout: 60 * 1000},function (arg1) {
browser.driver.get(arg1);
browser.manage().timeouts().pageLoadTimeout(10000);
});

this.When(/^I input user and password$/,{timeout: 60 * 1000}, function (callback) {
console.log("000000000000");
browser.sleep(5000);
browser.wait(function() {
var login = by.id('log');
return browser.driver.isElementPresent(login);
}, 30000);
browser.driver.findElement(by.id('log')).sendKeys("pratand");
browser.driver.findElement(by.id('pwd')).sendKeys("cygent@india11");
browser.driver.findElement(by.id('login')).click();
callback();
});

this.Then(/^I should see "([^"]*)" link$/,{timeout: 60 * 1000},function (arg1,callback) {
var logoutpath = by.xpath('//div[@id="account_logout"]/a');
browser.wait(function() {
return browser.driver.isElementPresent(logoutpath);
}, 30000);
expect(browser.driver.findElement(logoutpath).getText()).to.eventually.equal(arg1).and.notify(callback());
// expect(true).toEqual(true);
browser.driver.isElementPresent(logoutpath).then(function(isPresent){
browser.driver.findElement(logoutpath).then(function(start){
start.click();
});
});
});
};
module.exports = myStepDefinitionsWrapper;

最佳答案

尝试在配置文件中设置:

cucumberOpts: {
format: 'json:e2e-reports/json/results.json',}

并创建例如用于保存 json 的目录:

beforeLaunch: () => {
const jsonReports = path.join(process.cwd(), '/e2e-reports/json');
const htmlReports = path.join(process.cwd(), '/e2e-reports/html');
if (!fs.existsSync(jsonReports)) {
mkdirp.sync(jsonReports);
}
if (!fs.existsSync(htmlReports)) {
mkdirp.sync(htmlReports);
}
}

关于javascript - 如何从 Protractor [3.0.0] 和 cucumber 最新版本中获取 cucumber-test.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36443740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com