我可以在我的测试 class 中覆盖 quarkus application.properties 值吗?
Can I override quarkus application.properties value in my test class?
我在我的 quarkus 中配置了一个值 application.properties
skipvaluecheck=true
现在每当我想执行测试时,我都希望将此值设置为 false 而不是 true。但是我不想在application.properties里面改,因为会影响最新的应用部署。我只希望我的测试以 false 值执行,以便我的测试覆盖率在声纳中变为绿色。
从 java 代码中,我通过以下操作获取此值
ConfigProvider.getConfig().getValue("skipvaluecheck", Boolean.class);
Sprint boot 中已经存在类似的东西,我很好奇 quarkus 中是否也存在这样的东西
您需要定义 io.quarkus.test.junit.QuarkusTestProfile
的实现并通过 @TestProfile
添加到测试中。
类似于:
@QuarkusTest
@TestProfile(MyTest.MyProfile.class)
public class MyTest {
@Test
public void testSomething() {
}
public static class BuildTimeValueChangeTestProfile implements QuarkusTestProfile {
@Override
public Map<String, String> getConfigOverrides() {
return Map.of("skipvaluecheck", "true");
}
}
}
查看更多详情可见here
Quarkus 为此提供了 QuarkusTestProfile
的使用,您可以像这样定义一个配置文件:
public class CustomTestProfile implements QuarkusTestProfile {
Map<String, String> getConfigOverrides() {
return Map.of("skipvaluecheck", "false");
}
}
然后在你的测试中 class:
@QuarkusTest
@TestProfile(CustomTestProfile.class)
public class TestClass {
//...(etc)...
Quarkus 应用程序属性具有配置文件。例如
quarkus.log.level=WARN
%test.quarkus.log.level=INFO
这样(使用前缀 %test.
)您可以设置不同的测试值而不是生产值。
您还可以设置 %dev.
,当您处于 运行 本地开发模式时。
我在我的 quarkus 中配置了一个值 application.properties
skipvaluecheck=true
现在每当我想执行测试时,我都希望将此值设置为 false 而不是 true。但是我不想在application.properties里面改,因为会影响最新的应用部署。我只希望我的测试以 false 值执行,以便我的测试覆盖率在声纳中变为绿色。
从 java 代码中,我通过以下操作获取此值
ConfigProvider.getConfig().getValue("skipvaluecheck", Boolean.class);
Sprint boot 中已经存在类似的东西,我很好奇 quarkus 中是否也存在这样的东西
您需要定义 io.quarkus.test.junit.QuarkusTestProfile
的实现并通过 @TestProfile
添加到测试中。
类似于:
@QuarkusTest
@TestProfile(MyTest.MyProfile.class)
public class MyTest {
@Test
public void testSomething() {
}
public static class BuildTimeValueChangeTestProfile implements QuarkusTestProfile {
@Override
public Map<String, String> getConfigOverrides() {
return Map.of("skipvaluecheck", "true");
}
}
}
查看更多详情可见here
Quarkus 为此提供了 QuarkusTestProfile
的使用,您可以像这样定义一个配置文件:
public class CustomTestProfile implements QuarkusTestProfile {
Map<String, String> getConfigOverrides() {
return Map.of("skipvaluecheck", "false");
}
}
然后在你的测试中 class:
@QuarkusTest
@TestProfile(CustomTestProfile.class)
public class TestClass {
//...(etc)...
Quarkus 应用程序属性具有配置文件。例如
quarkus.log.level=WARN
%test.quarkus.log.level=INFO
这样(使用前缀 %test.
)您可以设置不同的测试值而不是生产值。
您还可以设置 %dev.
,当您处于 运行 本地开发模式时。