Невозможно выполнить тесты с аннотацией @Test, когда мой тест расширяет TestCase (Junit) в Eclipse - PullRequest
1 голос
/ 02 ноября 2009

Невозможно выполнить тесты с аннотацией @Test, когда мой тест расширяет TestCase (Junit) в Eclipse

Это прекрасно работает, когда я не расширяюсь от TestCase (jUnit), но мой существующий код расширяется от TestCase, поэтому я хотел бы оставить это как есть.

Ответы [ 3 ]

4 голосов
/ 25 октября 2012

Тесты, которые расширяются junit.framework. TestCase считается тестом в стиле JUnit3 от JUnit4. Это правильно.

Для аннотации @Test необходимо НЕ удлинить junit.framework. TestCase и аннотация @Test работают отлично

4 голосов
/ 02 ноября 2009

Убедитесь, что вы не используете JUnit3 runner.

Откройте «Выполнить настройку» для своего теста и на вкладке Test убедитесь, что для бегуна-испытателя выбрано JUnit 4.

ИМХО, если вы модернизируете свой набор тестов для JUnit4, просто отмените поддержку JUnit3.

Кстати, если вы переключитесь на бегун 'JUnit 4', он все равно будет выполнять старые классы JUnit3 (вам не нужно добавлять к ним аннотации @Test).

2 голосов
/ 19 июля 2010

Тесты, которые расширяют junit.framework.TestCase, рассматриваются бегуном JUnit4 в стиле JUnit3. См. исходный код для AllDefaultPossibilitiesBuilder для получения более подробной информации.

Вы можете заставить JUnit4 обрабатывать классы, расширяющие TestCase, как тесты в стиле JUnit4, аннотируя классы @RunWith(JUnit4.class), но вы почти наверняка не хотите этого делать. Если вы сделаете это, ваши тестовые классы по-прежнему будут наследовать все методы из junit.framework.TestCase, но эти методы не будут вызываться. Другими словами, вы бы унаследовали много беспорядка.

Наследование часто является плохим способом обмена кодом, даже в тестах. Если возможно поместить общий код в другой класс и делегировать его непосредственно из тестовых классов, сделайте это.

Если вы используете JUnit 4.7 или более позднюю версию, Правила предоставляют другой способ обмена кодом. Правила могут быть затронуты или могут повлиять на поведение теста.

В очень редких случаях общий код, необходимый для нескольких тестовых классов JUnit4, может совместно использоваться в Runner, но, поскольку тестовый класс может указывать только одного бегуна, у бегунов есть много тех же недостатков, что и у базовых классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...