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.
Veuillez comparer votre projet avec https://github.com/p6spy/p6spy-it-spring-boot Cet exemple fonctionne comme prévu. –
@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
Pourquoi n'utilisez-vous pas testCompile ('com.h2database: h2') au lieu de runtime? – Justas