JUnit + Знаток + Eclipse: Почему @BeforeClass не работает?

Я использую 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??? Какой-либо другой способ выполнить установку перед тестами?

8
задан Aniket Thakur 20 July 2014 в 08:31
поделиться

2 ответа

Sergio, вы были правы насчет того, что расширение TestCase вызывает проблему. Если вы расширяете TestCase, JUnit рассматривает ваш тестовый класс как старый (до JUnit 4) и выбирает org.junit.internal.runners.JUnit38ClassRunner для его запуска. JUnit38ClassRunner не знает об аннотации @BeforeClass. Посмотрите исходный код runnerForClass метода AllDefaultPossibilitiesBuilder и runnerForClass метода JUnit3Builder для более подробной информации.

Примечание: Эта проблема не связана с Eclipse или Maven.

11
ответ дан 5 December 2019 в 12:54
поделиться

Я подозреваю, что вы работаете с JUnit 3. Попробуйте переименовать свой тест на то, что не начинается с "test". Если тест больше не выполняется, вы используете JUnit 3 (который предполагает, что методы тестирования - это методы, которые начинаются с «test»).

Опубликуйте, пожалуйста, конфигурацию запуска Eclipse.

1
ответ дан 5 December 2019 в 12:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: