Как добавить тест JUnit 4, который не распространяется из TestCase в TestSuite?
Вопрос
В JUnit 3 я просто вызвал
suite.addTestSuite( MyTest.class )
Однако, если MyTest - это тест JUnit 4, который не расширяет TestCase, это не сработает.Что я должен сделать вместо этого, чтобы создать набор тестов?
Решение
Для тех, у кого большой набор наборов стилей / тестов 3.8, которые должны сосуществовать с новым стилем v4, вы можете сделать следующее:
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({
// Add a JUnit 3 suite
CalculatorSuite.class,
// JUnit 4 style tests
TestCalculatorAddition.class,
TestCalculatorDivision.class
})
public class CalculatorSuite {
// A traditional JUnit 3 suite
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTestSuite(TestCalculatorSubtraction.class);
return suite;
}
}
Другие советы
Я сам нашел ответ: здесь
Вот так:
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({
TestCalculatorAddition.class,
TestCalculatorSubtraction.class,
TestCalculatorMultiplication.class,
TestCalculatorDivision.class
})
public class CalculatorSuite {
// the class remains completely empty,
// being used only as a holder for the above annotations
}
Не связан с StackOverflow