Нет Runnable методов Ошибка из базового класса тестирования

У меня есть несколько базовых тестовых классов, которые устанавливают общие конфигурации для spring, logging, jndi и т.д., используя тестовые исполнители, которые затем унаследованы подклассами. Это делается для того, чтобы тесты могли просто запускать код, не беспокоясь о том, чтобы получить jndi и службы ведения журнала на месте, прежде чем сможете запустить тестовый код.

Используя intellij и вызывая "запускать все тесты" из базы проекта, IDE пытается запустить базовый тестовый класс как unit test и дает мне ошибку "Нет runnable methods".

Я знаю, что могу поместить пустой базовый метод в базовый класс, но я надеялся, что у кого-то есть лучшая идея.

Базовый класс:

    @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());

}

Ошибка:

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)

Ответы

Ответ 1

Сделайте родительский класс abstract или переименуйте его, например, он не заканчивается на Test или TestCase.

Ответ 2

У меня была такая же проблема. Я тестировал без тестового метода.

@Test
public void setupTest() {
}

Выше метод решил проблему.