2010-02-24 4 views
1

J'essaie de créer un plugin eclipse très simple.Problème d'utilisation de JUnit4TestAdapter à partir du contexte du plugin eclipse

Je souhaite exécuter le scénario de test sélectionné en utilisant mon outil avec l'aide de JUnit4TestAdapter.

Lorsque je cours en dehors d'éclipse, en utilisant "main" avec "paramètres" tout va bien.

Quand j'invoque « main » avec les mêmes « paramètres » à l'intérieur de l'éclipse (je suis en train de créer thread séparé pour cette invocation), je reçois une exception près:

java.lang.Exception: No runnable methods 
at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:171) 
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:115) 
at org.junit.runners.ParentRunner.validate(ParentRunner.java:269) 
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:66) 
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:59) 
at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:13) 
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) 
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29) 
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) 
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24) 
at junit.framework.JUnit4TestAdapter.<init>(JUnit4TestAdapter.java:31) 
at junit.framework.JUnit4TestAdapter.<init>(JUnit4TestAdapter.java:24) 
at util.JUnitTestRunner.runTest(JUnitTestRunner.java:26) 
at master.Master.runTests(Master.java:180) 
at master.Master.runTestsWithEquivalenceAnalysis(Master.java:207) 
at master.Master.runInitialTests(Master.java:132) 
at master.Master.run(Master.java:102) 
at master.Master.runMutationTesting(Master.java:49) 

Toute idée, ce qui se passe réellement faux? Pourquoi BlockJUnit4ClassRunner décide de lancer une exception lorsqu'il est exécuté en dehors de l'éclipse, il est très bien avec test donné? Btw, le test actuel est JUnit 3.8 (en opposition à JUnit4)

Répondre

3

"Aucune méthode exécutable" indique que JUnit n'a trouvé aucune méthode testable. Pour JUnit 3, il s'agit de méthodes commençant par testXXX(); pour JUnit 4, ce sont des méthodes annotées avec @Test. JUnit n'exécute pas les méthodes "main", à moins que vous n'utilisiez JUnit 4 et que la méthode principale ait l'annotation @Test (ce qui est un mauvais style). Si vos méthodes ont ces annotations correctes et qu'Eclipse lance toujours la même exception, cela peut être le résultat d'un problème plus profond avec le classpath ou la configuration.

+0

Merci! Le "problème plus profond avec le classpath ou la configuration" est typiquement d'avoir une autre version de JUnit quelque part sur votre classpath via une dépendance (indirecte). – vorburger

Questions connexes