问题描述
在 package.json 文件中,我在脚本下有一些任务列表
"scripts": {
"test:smoketest":"cucumber-js --format json:./reports/cucumber-json-report.json --tags '@Smoke_Test'","test:regressiontest":"cucumber-js --format json:./reports/cucumber-json-report.json --tags '@Regression_Test'","test:UI":"cucumber-js --format json:./reports/cucumber-json-report.json --tags '@UI'"
},
我将使用命令执行脚本,例如:npm run test:smoketest(npm run test:testname)我想在函数中传递这个测试名称以检查 if 条件,如
test.js
async function(){
if(testname=="UI"){
some tasks need to be done
}
else{
some task need to be done
}
谁能帮帮我。提前致谢
解决方法
创建运行时环境变量的步骤 在终端
-
首先我们需要安装命令 npm install dotenv --save-dev 。此命令将在您的节点模块文件夹中安装 dotenv 模块。
-
为了在runtime(执行期间)设置环境变量,我们需要执行命令
type=<type name> npm run test:<test name>
例如:type=Uitest npm run test:UI
此命令将在执行 UI 测试时创建一个值为 Uitest 的运行时变量类型
在 test.js 文件中将此环境变量作为参数传递
async function(){
if(process.env.type=="Uitest"){
some tasks need to be done
}
else if(process.env.type!="Uitest"){
some task need to be done
}
else{
some task need to be done
}
-----在环境变量类型为 Uitest 的情况下执行代码时,if 下的代码集将被执行。当环境变量不是 Uitest 类型时,else if 下的代码集将被执行。当运行时没有设置环境变量时
eg:npm run test:UI
然后将执行 else 中的代码集。 谢谢
,如果您想在运行时向支持代码提供任意数据,支持的方式是通过 CLI 传入 world parameters。
使用 profiles 可以更轻松地完成此操作(这也可能会简化您的 package.json 脚本,或者至少将复杂性转移到您的 Cucumber.js 配置中)。