spring - valid - No hay métodos ejecutables Error de clase de prueba base
spring mvc formulario ejemplo (2)
Tengo unas pocas clases de pruebas básicas que configuran configuraciones comunes para Spring, logging, jndi, etc., utilizando escuchas de ejecución de pruebas que luego son heredadas por subclases. Esto se hace para que las pruebas solo ejecuten el código sin tener que preocuparse por instalar jndi y los servicios de registro antes de poder ejecutar el código de prueba.
Al utilizar intellij e invocar "ejecutar todas las pruebas" desde la base del proyecto, el IDE intenta ejecutar la clase de prueba base como una prueba unitaria y me da el error "No hay métodos ejecutables".
Sé que podría poner un método ejecutable vacío en la clase base, pero esperaba que alguien tuviera una mejor idea.
La clase base es:
@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());
}
El error:
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)
Haga que la clase principal TestCase
o cambie su nombre, ya que no termina en Test
o TestCase
.
Tuve el mismo problema. Estaba probando sin un método de prueba.
@Test
public void setupTest() {
}
El método anterior resolvió el problema.