我可以在我的测试类中覆盖quarkus应用程序属性值吗?
我可以在我的测试类中覆盖quarkus应用程序属性值吗?
我在我的quarkus应用程序配置文件中配置了一个值。
skipvaluecheck=true
现在,每当我想执行我的测试时,我想将这个值设置为false,而不是true。但是,我不想在应用程序属性中做更改,因为这会影响最新的应用程序部署。我只想让我的测试以false的值运行,以便我的测试覆盖率在sonar中变成绿色。
从java代码中,我通过以下方式获取这个值
ConfigProvider.getConfig().getValue("skipvaluecheck", Boolean.class);
类似的东西已经存在于Sprint Boot中,我很好奇quarkus中是否也存在这样的东西
覆盖Junit测试中的默认Spring Boot应用程序配置文件设置
admin 更改状态以发布 2023年5月21日
Quarkus提供了使用QuarkusTestProfile
,您可以像以下方式定义配置:
public class CustomTestProfile implements QuarkusTestProfile { MapgetConfigOverrides() { return Map.of("skipvaluecheck", "false"); } }
然后在您的测试类中使用:
@QuarkusTest @TestProfile(CustomTestProfile.class) public class TestClass { //...(etc)...
您需要定义 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 MapgetConfigOverrides() { return Map.of("skipvaluecheck", "true"); } } }
更多详细信息请参见 这里