java - 尝试从 serenity.conf 读取特定于环境的数据时获取空值
问题描述
我正在尝试在 serenity.conf 中配置不同的环境特定数据,并尝试在我的 serenity bdd 测试中使用 EnvironmentVariables 读取它们。我在 serenity.conf 中有以下配置
environments {
dev {
restapi.baseurl = "https://dev.api.3stripes.io/"
}
stg {
restapi.baseurl = "https://stg.api.3stripes.io/"
}
default {
restapi.baseurl = "https://prod.api.3stripes.io/"
}
}
我正在尝试在我的 bdd 步骤中阅读此内容
EnvironmentVariables objEnvVar = SystemEnvironmentVariables.createEnvironmentVariables();
String baseURI = objEnvVar.getProperty("restapi.baseurl");
我正在使用 maven 命令运行测试:
mvn clean verify -Denvironment=dev
但是我得到了baseURI字符串的空值。请让我知道这里需要更改什么才能正确读取该值。
解决方案
该serenity.conf
文件必须位于其中一个src/main/resources
或src/test/resources
加载它。
您必须使用EnvironmentSpecificConfiguration
该类来读取值。
private EnvironmentVariables env;
@Test
void testMethod() {
String baseurl = EnvironmentSpecificConfiguration.from(env).getProperty("restapi.baseurl");
String basepath = EnvironmentSpecificConfiguration.from(env).getProperty("restapi.basepath");
}
我的serenity.conf
文件看起来像:
environments {
localhost {
restapi.baseurl = "https://localhost:9001"
}
uat {
restapi.baseurl = "https://uat.myco.com"
}
default {
restapi.baseurl = "https://some.host.com"
}
all {
restapi.basepath = "/path/to/api"
}
}
我可以通过运行来激活配置:
./gradlew -Denvironment=localhost clean test
推荐阅读
- html - 将子宽度设置为父内部宽度(滚动宽度/溢出滚动)
- ios - Safari 共享扩展 - 自 iOS 14 起,应用程序仅在第二次尝试后才出现在共享菜单中
- javascript - Slike 滑块隐藏/显示带有自定义类的幻灯片
- javascript - 按下回车按钮时触发显示密码功能(不应该这样做时)
- android - 如何到达foreach中的下一个对象
- git - Git 工作流,用于持久的、仅限本地的更改,应在状态中忽略、从不推送并始终应用
- python-3.x - 卡在 jupyter 笔记本中
- powershell - 带有 Powershell 的 Power BI 推送数据集;如何在单个 HTTP 调用中推送多个值/对象?
- excel-formula - 如何在excel中同时使用COUNTA和COUNTIF?
- image - Power BI 导入的图像/媒体在刷新时消失