如何设置环境变量以及如何将环境变量作为参数传递

问题描述

在 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
}

谁能帮帮我。提前致谢

解决方法

创建运行时环境变量的步骤 在终端

  1. 首先我们需要安装命令 npm install dotenv --save-dev 。此命令将在您的节点模块文件夹中安装 dotenv 模块。

  2. 为了在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 配置中)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...