Как добавить тест JUnit 4, который не распространяется из TestCase в TestSuite?

StackOverflow https://stackoverflow.com/questions/211487

  •  03-07-2019
  •  | 
  •  

Вопрос

В 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
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top