如何在inern 4中传递自定义参数

时间:2017-12-02 12:01:39

标签: intern

我一直在从我的产品中深入开展实习生自动化测试。我正在使用实习生版本3。但是由于实习生的第4版已经到来,我试图熟悉它。现在我的问题是如何将自定义参数传递给实习生4.我实习生3我曾经通过这样的启动命令传递它

node_modules/intern/runner.js config=/Automation/intern -leaveRemoteOpen arg1=arg1 arg2=arg2

使用inter.args.arg1抓住这些论点。

但是因为在实习生4中我开始使用npm test命令进行测试我无法弄清楚如何传递自定义参数以及如何在代码中捕获它,因为实习生4使用的是打字稿。< / p>

2 个答案:

答案 0 :(得分:3)

实习生4将接受任意配置参数,就像Intern 3一样;他们的访问方式略有不同。在实习生4中,您使用intern.config对象而不是intern.args。例如,使用命令行:

$ npx intern foo=bar

JS测试可以访问参数foo:

'some test'() {
    const foo = intern.config.foo;
}

假设您正在使用TypeScript,您需要将intern.config转换为any以获取自定义参数:

'some test'() {
    const foo = (<any>intern.config).foo;
}

答案 1 :(得分:1)

我今天花了一些时间来实现这个目标,希望实现你所要求的。

我在我的工作场所和使用Intern 4的自己的个人项目中都建立了自己的自动化框架,并没有意识到这种事情在实习4中变得如此复杂。

目前,我通过以下解决方案获得了您正在寻找的结果。

我正在通过您已经描述的自定义npm脚本运行我的实习功能套件。我已将自己的脚本添加到package.json文件中,并发送了两个参数,我将其称为myArg1myArg2,仅用于此示例。

所以我的package.json脚本如下:

"scripts": {
    "test-ui": "./node_modules/.bin/intern config=/path_to_my_intern.json_config myArg1 myArg2"
}

现在我可以使用npm run test-ui执行此操作。

那么如何在实习生考试中检索这两个参数?您可以使用以下内容:

process.argv[3]; // Will return 'myArg1'
process.argv[4]; // Will return 'myArg2'

基本上,process.argv的使用将返回所有参数的数组,而我的另外两个参数将在索引3和索引4处传入。您将在该数组中的某处找到命令行参数(可能在和我一样的指数位置。)

希望这有帮助!