Я использую JUnit 4, Знаток 2 и последний Eclipse. Проблема проста: Я хотел бы выполнить некоторую установку (соединяющийся с базой данных), прежде чем мои тесты будут выполнены.
Я попробовал @BeforeClass во многих различных местоположениях, но Eclipse и Знаток игнорируют это. Какая-либо справка при выполнении этой начальной настройки?
Спасибо!
public abstract class BaseTestCase extends TestCase {
@BeforeClass
public static void doBeforeClass() throws Exception {
System.out.println("No good @BeforeClass");
// DO THE DATABASE SETUP
}
}
Теперь тестовое расширение BaseTestCase:
public class LoginActionTest extends BaseTestCase {
@Test
public void testNothing() {
System.out.println("TEST HERE");
assertEquals(true, true);
}
}
Знаток и Eclipse просто игнорируют мой @BeforeClass??? Какой-либо другой способ выполнить установку перед тестами?
Sergio, вы были правы насчет того, что расширение TestCase вызывает проблему. Если вы расширяете TestCase, JUnit рассматривает ваш тестовый класс как старый (до JUnit 4) и выбирает org.junit.internal.runners.JUnit38ClassRunner
для его запуска. JUnit38ClassRunner не знает об аннотации @BeforeClass
. Посмотрите исходный код runnerForClass
метода AllDefaultPossibilitiesBuilder
и runnerForClass
метода JUnit3Builder
для более подробной информации.
Примечание: Эта проблема не связана с Eclipse или Maven.
Я подозреваю, что вы работаете с JUnit 3. Попробуйте переименовать свой тест на то, что не начинается с "test". Если тест больше не выполняется, вы используете JUnit 3 (который предполагает, что методы тестирования - это методы, которые начинаются с «test»).
Опубликуйте, пожалуйста, конфигурацию запуска Eclipse.