【问题标题】:Not able to disable Spring Vault during unit tests in Java在 Java 中的单元测试期间无法禁用 Spring Vault
【发布时间】:2021-03-05 08:58:54
【问题描述】:

我在我的单元测试中禁用了弹簧保险库。但是,它仍然启用它并在后台运行。这是我的代码。下面的代码有什么问题吗

@RunWith(SpringRunner.class)

@SpringBootTest(properties = "spring.cloud.vault.enabled=false", classes = 
 DummyTest.class)
public class DummyTest{
    
    @Test
    public void getDummyTest() throws Exception{
        assertTrue(true);
    }
    
}

以下是它在控制台中打印的例外情况

Caused by: java.lang.IllegalArgumentException: Token (spring.cloud.vault.token) must not be empty
at org.springframework.util.Assert.hasText(Assert.java:287)
at org.springframework.cloud.vault.config.ClientAuthenticationFactory.createClientAuthentication(ClientAuthenticationFactory.java:108)
at org.springframework.cloud.vault.config.VaultBootstrapConfiguration.clientAuthentication(VaultBootstrapConfiguration.java:206)
at org.springframework.cloud.vault.config.VaultBootstrapConfiguration$$EnhancerBySpringCGLIB$$1d0bfc2.CGLIB$clientAuthentication$3(<generated>)
at org.springframework.cloud.vault.config.VaultBootstrapConfiguration$$EnhancerBySpringCGLIB$$1d0bfc2$$FastClassBySpringCGLIB$$7f75c921.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)
at org.springframework.cloud.vault.config.VaultBootstrapConfiguration$$EnhancerBySpringCGLIB$$1d0bfc2.clientAuthentication(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 99 more

【问题讨论】:

    标签: java spring spring-cloud-vault-config


    【解决方案1】:

    我昨天遇到了完全相同的问题。该问题已在此问题中解决:Caused by: java.lang.IllegalArgumentException: Token (spring.cloud.vault.token) must not be empty - Hashicorp Vault

    您的测试类已在应用程序上下文中加载,但您收到的错误会在引导程序上下文中引发。 spring.cloud-properties 始终在该上下文中加载。解决方案是在引导上下文中设置spring.cloud.vault.enabled=false,例如你可以把它放在你的测试资源中的 bootstrap.yml 文件中。

    【讨论】:

      猜你喜欢
      • 2014-02-24
      • 2014-02-28
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 2017-01-30
      • 2018-06-16
      • 2013-06-25
      • 2012-10-25
      相关资源
      最近更新 更多