Я пишу некоторые тесты JUnit, которые расширяют класс из сторонней библиотеки. Суперкласс расширяет TestCase
, поэтому по определению мой подкласс.Можно ли смешивать JUnit 3 и JUnit 4?
В моем подклассе я пишу методы тестирования с префиксом test
, и они выполняются.
Однако, по ряду причин, мы хотели бы перейти на JUnit 4 (одна из этих причин является то, что мы не хотим, чтобы иметь префикс методы испытаний с test
)
Я пытался просто писать свои новые тесты с аннотацией JUnit 4 @Test
, но эти методы не выполняются.
Например:
public abstract class UtilityClassFromThirdPartyLibrary extends TestCase {
}
public class MyTestClass extends UtilityClassFromThirdPartyLibrary {
public void testThisMethodIsInvokedBecauseItStartsWithTest {
}
@Test
public void thisMethodDoesNotGetInvoked {
}
}
Не расширение 3-го класса теста партии не вариант. (Для чего это стоит, это весна AbstractXmlFlowExecutionTests
, которая, в свою очередь, расширяет другие классы Spring, которые в конечном итоге расширяют TestCase
. Методы суперклассов обеспечивают так много настроек и шаблонов, что не расширяет их просто, чтобы использовать JUnit 4 будет контрпродуктивным)
Как уже упоминалось, одна из наших мотивов для использования аннотации JUnit 4 @Test
заключается в том, что она позволяет нам лучше называть наши методы. Наше мнение - это слово test
является избыточным, так как класс явно является тестовым классом, а метод аннотируется с помощью @Test
. И мы пишем наши тесты в стиле BDD, и поэтому наши имена методов тестирования описывают, что должно делать единица измерения - наше соглашение об именах: public void shouldDoSomething()
Кто-нибудь знает, возможно ли его смешивать тестовые классы mix'n'match, которые расширяются JUnit 3's TestCase
с методами, использующими JUnit 4's @Test
?, И если да, то как?
Благодаря
Натан
Я уже видел пару SO вопросов, которые касаются быть та же проблема, но они связаны с Android или тестовых наборов, так что не совсем такой же, как мой вопрос. EG: испытания типа
Is it possible to mix JUnit3 and JUnit4?
https://stackoverflow.com/questions/32393330/run-junit-3-and-junit-4-tests-in-the-same-class
Как вы будете проводить тесты? Maven? IntelliJ? Затмение? –
Да, должен был упомянуть, тесты выполняются как часть нашей сборки Maven, но также и в IDE разработчика (мы можем выбрать нашу среду IDE, а также использовать IntelliJ и Eclipse) –
вы пытались использовать аннотацию '@ RunWith' с помощью [spring junit runner] (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/test/context/junit4/SpringJUnit4ClassRunner.html)? –