gpt4 book ai didi

javascript - 通过node的index.js以编程方式调用cucumber cli

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

我在 CucumberJS 和 selenium Node 中获得了一个自动化框架。但它有一个旧版本的 cucumber ,它依赖于 promise 。为了利用最新的同步步骤功能,我决定升级 cucumberJS 版本(1.3.3 到 4.2.1)现在的问题是用于在 index.js 中以编程方式调用 cucumber cli 的代码不再有效。我在步骤定义和 world.js 中进行了所有其他更改,但我无法弄清楚如何通过 Node 运行这个东西,比如

node index.js --tags @SampleFeature

这以前适用于旧版本,但现在不行了。

之前有效的代码 -

// execute cucumber
let cucumberCli = Cucumber.Cli(process.argv);

cucumberCli.run(succeeded => {
var code = succeeded ? 0 : 1;

function exitNow() {
process.exit(code);
}

if (process.stdout.write('')) {
exitNow();
} else {
process.stdout.on('drain', exitNow);
}
});

现在版本更新后会抛出这样的错误

/Users/../node_modules/babel-runtime/helpers/classCallCheck.js:7
throw new TypeError("Cannot call a class as a function");
^

TypeError: Cannot call a class as a function
at exports.default (/Users/../node_modules/babel-runtime/helpers/classCallCheck.js:7:11)
at Object.Cli (/Users/../node_modules/cucumber/lib/cli/index.js:78:34)
at Object.<anonymous> (/Users/../index.js:90:10)
at Module._compile (internal/modules/cjs/loader.js:678:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:689:10)
at Module.load (internal/modules/cjs/loader.js:589:32)
at tryModuleLoad (internal/modules/cjs/loader.js:528:12)
at Function.Module._load (internal/modules/cjs/loader.js:520:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:719:10)
at startup (internal/bootstrap/node.js:228:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:576:3)

我在谷歌上搜索了很多,但没有找到替代方案。尝试了多种方法,如使用 new 关键字将 Cli 调用为类,但没有用。尝试删除它并通过普通的 cucumber cli 运行器运行,但没有用。

附言。我来自具有 Java 背景的 Cucumber,那里的事情更简单 :)

最佳答案

您需要创建一个新的 CLI 对象,然后使用它的 .run 方法:

let runArgs = ['The cucumber args array here'];
let cliArgs = {argv : runArgs, cwd: process.cwd(), stdout: process.stdout};
let cli = (new require('cucumber').Cli)(cliArgs);

cli.run(); //Returns a promise

关于javascript - 通过node的index.js以编程方式调用cucumber cli,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50858283/

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