我可以在我的测试类中覆盖quarkus应用程序属性值吗?

23 浏览
0 Comments

我可以在我的测试类中覆盖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日
0
0 Comments

Quarkus提供了使用QuarkusTestProfile,您可以像以下方式定义配置:

public class CustomTestProfile implements QuarkusTestProfile {
    Map getConfigOverrides() {
        return Map.of("skipvaluecheck", "false");
    }
}

然后在您的测试类中使用:

@QuarkusTest
@TestProfile(CustomTestProfile.class)
public class TestClass {
//...(etc)...

更多信息请参见:https://quarkus.io/blog/quarkus-test-profiles/

0
0 Comments

您需要定义 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 getConfigOverrides() {
            return Map.of("skipvaluecheck", "true");
        }
    }
}

更多详细信息请参见 这里

0