如何在 inern 4 中传递自定义参数
How to pass custom argument in inern 4
我一直在开发我的产品的实习生自动化测试。我为此使用了实习生版本 3。但是自从 intern 的版本 4 到了,我就试着熟悉它。现在我的问题是如何将自定义参数传递给实习生 4。我是实习生 3,我曾经像这样通过启动命令传递它
node_modules/intern/runner.js config=/Automation/intern -leaveRemoteOpen arg1=arg1 arg2=arg2
并使用 inter.args.arg1
.
捕捉这些参数
但是因为在实习生 4 中我开始使用 npm test
命令进行测试,所以我无法弄清楚如何传递自定义参数以及如何在代码中捕获它,因为实习生 4 使用打字稿。
我今天花了一些时间来解决这个问题,希望能实现您的要求。
我已经在我的工作场所和我自己的独立项目中使用 Intern 4 构建了我自己的自动化框架,但没有意识到这种事情已经通过 Intern 4 变得如此复杂。
就目前而言,我通过以下解决方案实现了您正在寻找的结果。
我是 运行 我的实习生功能套件,就像您已经描述的那样,通过自定义 npm 脚本。我已将我自己的脚本添加到我的 package.json
文件中,并发送两个参数,我将它们称为 myArg1
和 myArg2
仅用于此示例。
所以我的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
的使用将 return 所有参数的数组,我的另外两个参数在索引 3 和索引 4 处传入。你会在某处找到你的命令行参数该数组(可能与我的索引位置相同)。
希望对您有所帮助!
实习生 4 将像实习生 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;
}
我一直在开发我的产品的实习生自动化测试。我为此使用了实习生版本 3。但是自从 intern 的版本 4 到了,我就试着熟悉它。现在我的问题是如何将自定义参数传递给实习生 4。我是实习生 3,我曾经像这样通过启动命令传递它
node_modules/intern/runner.js config=/Automation/intern -leaveRemoteOpen arg1=arg1 arg2=arg2
并使用 inter.args.arg1
.
但是因为在实习生 4 中我开始使用 npm test
命令进行测试,所以我无法弄清楚如何传递自定义参数以及如何在代码中捕获它,因为实习生 4 使用打字稿。
我今天花了一些时间来解决这个问题,希望能实现您的要求。
我已经在我的工作场所和我自己的独立项目中使用 Intern 4 构建了我自己的自动化框架,但没有意识到这种事情已经通过 Intern 4 变得如此复杂。
就目前而言,我通过以下解决方案实现了您正在寻找的结果。
我是 运行 我的实习生功能套件,就像您已经描述的那样,通过自定义 npm 脚本。我已将我自己的脚本添加到我的 package.json
文件中,并发送两个参数,我将它们称为 myArg1
和 myArg2
仅用于此示例。
所以我的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
的使用将 return 所有参数的数组,我的另外两个参数在索引 3 和索引 4 处传入。你会在某处找到你的命令行参数该数组(可能与我的索引位置相同)。
希望对您有所帮助!
实习生 4 将像实习生 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;
}