Printemps de Démarrage Test ignore l'enregistrement.niveau
Un de mes maven module ignore mes niveaux d'enregistrement lors de l'exécution des tests.
Dans src/test/resources j'ai de l'application.propriétés:
app.name=bbsng-import-backend
app.description=Import Backend Module for Application
spring.profiles.active=test
# LOGGING
logging.level.root=error
logging.level.org.springframework.core =fatal
logging.level.org.springframework.beans=fatal
logging.level.org.springframework.context=fatal
logging.level.org.springframework.transaction=error
logging.level.org.springframework.test=error
logging.level.org.springframework.web=error
logging.level.org.hibernate=ERROR
J'ai aussi essayé l'application de test.les propriétés.
Mon Application se connecte beaucoup, surtout lors du chargement du contexte. J'ai essayé logback.xml, logback-test.xml et logback-spring.xml mais rien n'y fait.
Mon pompon:
<parent>
<groupId>at.company.bbsng</groupId>
<artifactId>bbsng-import</artifactId>
<version>0.1.0-SNAPSHOT</version>
</parent>
<artifactId>bbsng-import-backend</artifactId>
<name>bbsng-import-backend</name>
<properties>
<start-class>at.company.bbsng.dataimport.ApplicationImportBackend</start-class>
</properties>
<dependencies>
<!-- APPLICATION ... -->
<dependency>
<groupId>at.company.bbsng</groupId>
<artifactId>bbsng-app-domain</artifactId>
<scope>test</scope>
</dependency>
<!-- SPRING ... -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<scope>test</scope>
</dependency>
<!-- JAVAX ... -->
...
<!-- COMMONS ... -->
...
<!-- LOMBOK ... -->
...
<!-- DB -->
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${org.springframework.boot-version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Une simple classe de Test:
@ContextConfiguration(classes = { ApplicationImportBackend.class })
@RunWith(SpringJUnit4ClassRunner.class)
@ActiveProfiles({ "test" })
public class BatchJobConfigurationTests {
@Autowired
private JobLauncher jobLauncher;
@Test
public void testSimpleProperties() throws Exception {
assertNotNull(jobLauncher);
}
}
Journaux d'Application est en Mode de DÉBOGAGE.
Et oui, l'application.les propriétés seront chargés. J'ai déjà essayé de briser la demande par le mauvais config.
Je vous remercie pour tous les conseils.
Vous devez vous connecter pour publier un commentaire.
Bon ce que j'ai fait maintenant, dans tous les modules, j'ai configuré comme suit:
src/main/resources:
J'utilise la configuration de la journalisation de l'application.properies comme l'exploitation forestière.de niveau.* comme descrbed en question.
src/test/resources:
J'utilise logback-test.xml comme:
Mais je ne comprends toujours pas, pourquoi dans quelques modules que je pouvais utiliser l'application.propriétés, mais dans un autre module qu'il ignore ... Mais pour l'instant il fonctionne pour moi comme il est.
Mais peut-être quelques conseils ayant des connaissances de base sont toujours les bienvenus.
Je n'ai pas la marque de ma réponse comme solution, cos il se sent toujours comme une solution de contournement.
application.properties
est analysée plus tard le test d'initialisation. C'est pourquoiorg.springframework.test
n'a aucun effet sur le test initial de l'exploitation forestière.<logger name="org.springframework.boot" level="warn" />
et<logger name="org.eclipse.jetty" level="warn" />
vraiment réduit le bruit. Si vous êtes à l'aide de swagger, vous pouvez également ajouter<logger name="springfox" level="warn" />
. Bien fait. Avoir un bounty!logback-test.xml
fichier. Afin de transformer ces off j'ai suivi la principale réponse à partir de ce StackOverflow post - et BAM, j'ai réussi à me débarrasser de tous les précurseurs de la journalisation lors de l'exécution des tests.logback-test.xml
fichier a été aussi simple que cela: <?xml version="1.0" encoding="UTF-8"?> <configuration> <statusListener class="ch.la qualité de service.logback.de base.statut.NopStatusListener" /> <inclure resource="org/springframework/boot/logging/logback/base.xml" /> <nom de l'enregistreur="org.springframework" level="error" /> </configuration>logback-test.xml
fonctionne comme prévu. (+1) merciRapidement corrigé, j'ai mis logback.xml fichier avec le contenu ci-dessus dans src/test/resources et il fonctionne.
logback-text.xml
Pour permettre l'application.propriétés besoin d'ajouter une annotation @SpringBootTest à la classe de test, pour en savoir plus ici
Je suis aussi à la recherche d'une solution pour que, en attendant, je suis en utilisant la solution suivante:
ce n'est pas la meilleure, mais elle fonctionne
LoggingSystem
: une commune abstraction au-dessus des systèmes de journalisation.->
get
: Détecter et de renvoyer le système d'enregistrement en cours d'utilisation. Prend en charge Logback et l'enregistrement de JavasetLogLevel
:Définit le niveau de journalisation pour un enregistreur.
Assurez-vous de changer le niveau du journal pour toutes les autres classes de test.
Espère que cela vous aide, goodluck
Si vos tests sont annotés avec @DataJpaTest vous pouvez passer Hibernate, SQL déconnexion avec:
Essayez ceci: