Как программно выполнить набор тестов с помощью JUnit4?

Я пытаюсь вызвать набор тестов JUnit с помощью API. Я знаю, что вы можете настроить тестовые классы, используя следующее:

@RunWith(Suite.class)
@Suite.SuiteClasses({
  Test1.class,
  Test2.class, ...
})

Но есть ли способ запустить весь набор с помощью Java API, например, с помощью JUnitCore?

Например, вы можете инициировать тест, используя следующий код:

Runner r = 
try {
  r = new BlockJUnit4ClassRunner(Class.forName(testClass));
} catch (ClassNotFoundException | InitializationError e) {
  // handle
}
JUnitCore c = new JUnitCore();
c.run(Request.runner(r));

Обновление:

Судя по API, сам класс Suite является бегуном, поэтому следующий код работает:

Suite suite = new Suite(klass, new RunnerBuilder() {
... // Implement methods
});
JUnitCore c = new JUnitCore();
c.run(Request.runner(suite));

Но я не уверен, является ли это рекомендуемым подходом или есть ли недостатки в написании приведенного выше кода.

10
задан Matthew Farwell 29 June 2012 в 06:16
поделиться