【问题标题】:Can I override quarkus application.properties value in my test class?我可以在我的测试类中覆盖 quarkus application.properties 值吗?
【发布时间】:2021-11-14 22:19:22
【问题描述】:

我在我的 quarkus application.properties 中配置了一个值

skipvaluecheck=true

现在,每当我想执行我的测试时,我都希望将此值设置为 false 而不是 true。但我不想更改 application.properties 因为它会影响最新的应用程序部署。我只是希望我的测试以 false 值执行,以便我的测试覆盖率在声纳中变为绿色。

从 java 代码中,我通过以下操作获取此值

ConfigProvider.getConfig().getValue("skipvaluecheck", Boolean.class);

Sprint boot 中已经存在类似的东西,我很好奇 quarkus 中是否也存在类似的东西

Override default Spring-Boot application.properties settings in Junit Test

【问题讨论】:

    标签: junit quarkus application.properties quarkus-rest-client


    【解决方案1】:

    您需要定义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

    【讨论】:

      【解决方案2】:

      Quarkus 为此提供了QuarkusTestProfile 的使用,您可以像这样定义配置文件:

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

      然后在你的测试课上:

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

      更多信息在这里:https://quarkus.io/blog/quarkus-test-profiles/

      【讨论】:

        【解决方案3】:

        Quarkus 应用程序属性具有配置文件。例如

        quarkus.log.level=WARN
        %test.quarkus.log.level=INFO
        

        这样(带有前缀%test.)您可以设置不同的测试值而不是生产值。 您还可以在本地开发模式下运行时设置%dev.

        参考https://quarkus.io/guides/config-reference#profiles

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-09-26
          • 1970-01-01
          • 1970-01-01
          • 2010-10-29
          • 2017-07-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多