Ho alcune classi di test di base che configurano configurazioni comuni per spring, logging, jndi etc utilizzando listener di esecuzione test che vengono ereditati dalle sottoclassi. Questo è fatto in modo che i test possano semplicemente eseguire il codice senza doversi preoccupare di ottenere jndi e servizi di registrazione in atto prima di essere in grado di eseguire il codice di test.Nessun metodo Runnable Errore dalla classe Base di prova
Utilizzando intellij e richiamando "esegui tutti i test" dalla base del progetto, l'IDE tenta di eseguire la classe di test di base come test di unità e mi dà l'errore "Nessun metodo eseguibile".
So che potrei mettere un metodo runnable vuoto nella classe base, ma speravo che qualcuno avesse un'idea migliore.
La classe base è:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath:spring-jndi.xml"
})
@TestExecutionListeners({
Log4JSetupListener.class,
JndiSetupListener.class,
DependencyInjectionTestExecutionListener.class,
DirtiesContextTestExecutionListener.class,
TransactionalTestExecutionListener.class
})
public class SpringAppTestCase extends Assert implements ApplicationContextAware {
protected JndiTemplate jndiTemplate = new JndiTemplate();
@Autowired
protected JdbcTemplate jdbcTemplate;
protected ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext ac) {
this.applicationContext = ac;
}
//
// @Test
// public void doit(){
// // this would prevent blow up but
// all subclass tests would run an extra method
// }
protected Logger log = Logger.getLogger(getClass().getName());
}
L'errore:
java.lang.Exception: No runnable methods
at org.junit.internal.runners.MethodValidator.validateInstanceMethods(MethodValidator.java:32)
at org.junit.internal.runners.MethodValidator.validateMethodsForDefaultRunner(MethodValidator.java:43)
at org.junit.internal.runners.JUnit4ClassRunner.validate(JUnit4ClassRunner.java:36)
at org.junit.internal.runners.JUnit4ClassRunner.<init>(JUnit4ClassRunner.java:27)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<init>(SpringJUnit4ClassRunner.java:76)
In realtà non ci sono test nel codice sopra .... Avete commentato così il messaggio di errore è corretto? –
Sì, spiegato dal commento all'interno del codice commentato – gbegley