Pour optimiser fin, je besoin de personnaliser la logique TestExecutionListeners
invocateurQuelle est la meilleure façon de personnaliser plusieurs méthodes TestExecutionListeners invoquées pour TestSuite?
Dans mon cas, j'ai un ApplicationContext
et deux types de tests:
- celles qui utilisent
WebDriver
(appelons-leObservableTest
) - celles qui utiliser
RestTemplate
etJdbcTemplate
(appelons-leApiTest
)
Chaque utilisations de type son propre TestExecutionListener
:
ObservableTest
-ObservableTestListener
ApiTest
-ApiTestListener
Les deux ObservableTestListener
et ApiTestListener
étendre TestListener
où prepareTestInstance()
est défini
ObservableTestListener
met en œuvre des méthodes beforeTestClass()
et afterTestClass()
ainsi que ApiTestListener
-t
J'ai besoin de combiner les types de test ci-dessus dans un JUnit TestSuite
de la prochaine façon:
- Pour chaque test
prepareTestInstance()
est invoqué - Dès la première
ObservableTest
est sur le point d'être instancié,beforeTestClass()
deObservableTestListener
est exécuté - La même chose avec
ApiTest
afterTestClass()
deObservableTestListener
est invoquée lors de la dernièreObservableTest
est terminée dans la suite actuelle- La même chose avec
ApiTest
Les choses se sont encore plus compliquées que chaque test peut être exécuté dans une suite et dans différents ApplicationContexts
(en raison de différents usages profils)
Je serais très reconnaissant de tout soupçon et la direction de creuser pour mettre en œuvre cette logique correctement
J'ai deux idées à ce jour:
- La mise en œuvre personnalisée
Runner
(je ne suis pas convaincu qu'il est encore possible) - prévenir
TestContextManager
en quelque sorte cette méthode particulière (beforeTestClass()
ouafterTestClass()
) devrait ou ne devrait pas être invoquée. J'ai le sentiment que@BootstrapWith
SpringClassRule
devrait me aider dans cette
Merci!
Pourquoi est-il pas possible d'utiliser '@ TestExecutionListeners' sur les 2 différents types de test pour enregistrer les auditeurs appropriés? –
@ M.Deinum c'est exactement ce que je fais, mais quand je mets ces tests en suite, TestExecutionListeners invoque ses méthodes avec chaque test de cette suite. J'essaie d'éviter que – Anton
SuiteExecutionListener de Spring peut fonctionner. http://stackoverflow.com/questions/37985717/is-there-anything-like-spring-testexecutionlistener-for-testsuite –