2016-07-04 2 views
8

Ich habe gerade herausgefunden, dass Spring einen Debug-Modus hat, der Einblicke in die Autokonfiguration gibt. Für einen Server kann er aktiviert werden, indem --debug als Anwendungsparameter übergeben wird.Wie kann der automatische Konfigurationsbericht von Spring in Tests aktiviert werden?

Gibt es eine Möglichkeit, den Debug-Modus auch für Tests (mit der SpringJUnit4ClassRunner ausgeführt) zu aktivieren?


Wenn die Auto-Konfigurationsbericht arbeitet, sollte es eine Ausgabe wie folgt drucken:

========================= 
AUTO-CONFIGURATION REPORT 
========================= 


Positive matches: 
----------------- 

    ConfigServiceBootstrapConfiguration#configServicePropertySource matched 
     - matched (OnPropertyCondition) 

    ConfigurationPropertiesRebinderAutoConfiguration matched 
     - @ConditionalOnBean (types: org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor; SearchStrategy: all) found the following [org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor] (OnBeanCondition) 

    ConfigurationPropertiesRebinderAutoConfiguration#configurationPropertiesBeans matched 
     - @ConditionalOnMissingBean (types: org.springframework.cloud.context.properties.ConfigurationPropertiesBeans; SearchStrategy: current) found no beans (OnBeanCondition) 

    ConfigurationPropertiesRebinderAutoConfiguration#configurationPropertiesRebinder matched 
     - @ConditionalOnMissingBean (types: org.springframework.cloud.context.properties.ConfigurationPropertiesRebinder; SearchStrategy: current) found no beans (OnBeanCondition) 

    EncryptionBootstrapConfiguration matched 
     - @ConditionalOnClass classes found: org.springframework.security.crypto.encrypt.TextEncryptor (OnClassCondition) 

    PropertyPlaceholderAutoConfiguration#propertySourcesPlaceholderConfigurer matched 
     - @ConditionalOnMissingBean (types: org.springframework.context.support.PropertySourcesPlaceholderConfigurer; SearchStrategy: current) found no beans (OnBeanCondition) 


Negative matches: 
----------------- 

    ConfigServiceBootstrapConfiguration.RetryConfiguration did not match 
     - required @ConditionalOnClass classes not found: org.springframework.retry.annotation.Retryable,org.aspectj.lang.annotation.Aspect (OnClassCondition) 

    DiscoveryClientConfigServiceBootstrapConfiguration did not match 
     - @ConditionalOnProperty missing required properties spring.cloud.config.discovery.enabled (OnPropertyCondition) 

    EncryptionBootstrapConfiguration.RsaEncryptionConfiguration did not match 
     - @ConditionalOnClass classes found: org.springframework.security.rsa.crypto.RsaSecretEncryptor (OnClassCondition) 
     - Keystore nor key found in Environment (EncryptionBootstrapConfiguration.KeyCondition) 

    EncryptionBootstrapConfiguration.VanillaEncryptionConfiguration did not match 
     - required @ConditionalOnMissing classes found: org.springframework.security.rsa.crypto.RsaSecretEncryptor (OnClassCondition) 

    EurekaDiscoveryClientConfigServiceBootstrapConfiguration did not match 
     - @ConditionalOnClass classes found: org.springframework.cloud.config.client.ConfigServicePropertySourceLocator (OnClassCondition) 
     - @ConditionalOnProperty missing required properties spring.cloud.config.discovery.enabled (OnPropertyCondition) 


Exclusions: 
----------- 

    None 


Unconditional classes: 
---------------------- 

    None 

Antwort

15

--debug setzt debug Eigenschaft, die auf dem Auto-Konfigurationsbericht schaltet. Sie können das gleiche in Ihrem Test mit z. B. @TestPropertySource in Ihrer Testklasse tun:

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringApplicationConfiguration(Application.class) 
@TestPropertySource(properties = "debug=true") 
public class YourTests { 
    // … 
} 
Verwandte Themen