2017-10-09 3 views
0

J'essaie de travailler avec p6spy dans les tests Spring Boot. J'ai une classe de test annotée avecLes dépendances de test Gradle ne sont pas chargées dans Spring Boot test

@RunWith(SpringRunner.class) 
@SpringBootTest 

Mon gradle.build ressemble à ceci

dependencies { 
compile('org.springframework.boot:spring-boot-starter-data-jpa') 
runtime('com.h2database:h2') 

testCompile 'p6spy:p6spy:3.0.0' 
testCompile('org.springframework.boot:spring-boot-starter-test') 
} 

En ce qui concerne l'application elle-même (qui fonctionne bien), j'ai ajouté la nouvelle source de données à l'essai application- le contexte.

spring: 
application: 
    name: persistence 
datasource: 
    url: jdbc:p6spy:h2:mem:persistence;DB_CLOSE_ON_EXIT=FALSE 
    username: sa 
    password: 
    driver-class-name: com.p6spy.engine.spy.P6SpyDriver 
jpa: 
database: H2 

Mais quand je lance mon test je reçois cette erreur

java.lang.IllegalStateException: Cannot load driver class: com.p6spy.engine.spy.P6SpyDriver

Pour moi, cela ressemble à mes dépendances ne sont pas chargées. Au début, j'utilisais l'annotation @DataJpaTest, mais celle-ci ignorait même mon nouveau contexte d'application de test.

Toute aide appréciée.

EDIT: Je l'ai fait fonctionner en ajoutant manuellement la dépendance p6spy au test en utilisant IntelliJ. Maintenant, je suis sûr que mon chemin de classe est faux, mais je ne sais pas comment le réparer pour le faire fonctionner à Gradle.

+0

Veuillez comparer votre projet avec https://github.com/p6spy/p6spy-it-spring-boot Cet exemple fonctionne comme prévu. –

+0

@simas_ch Merci pour l'indice. J'ai effectivement utilisé cette aide, mais elle n'utilise pas de tests avec p6spy (ou peut-être que je suis aveugle?) – sorencito

+0

Pourquoi n'utilisez-vous pas testCompile ('com.h2database: h2') au lieu de runtime? – Justas

Répondre

0

Le problème est situé dans ma version d'IntelliJ. Je vais déposer un rapport de bug.

Si quelqu'un devait avoir ce problème, j'ai ajouté manuellement les dépendances manquantes dans les paramètres du projet. Ensuite, cela fonctionne aussi à partir de l'IDE.