У меня есть тестовый класс, который я пытаюсь выполнить от основного метода со следующим кодом:
Result r = org.junit.runner.JUnitCore.runClasses(TestReader.class);
то, когда я исследую Объект результата I, видит, что 5 тестов были запущены, но ничто не печатается на экране.
Я должен сделать что-то еще для получения вывода?
Это не очень чистый способ сделать это, потому что это не обычное дело. Вам нужно распечатать вывод только в том случае, если вы создаете программу, которую можно использовать для запуска тестов в командной строке, и JUnitCore сам делает это.
Все варианты включают использование классов во внутреннем пакете.
Result r = JUnitCore.runMain(new RealSystem(), TestReader.class.getName())
Если вы хотите распечатать что-то другое, кроме System.out
, вы можете создать свой собственный подкласс org.junit.internal.JUnitSystem
и использовать его вместо RealSystem
Вы также можете использовать org.junit.internal.TextListener
. См. Пример runMain (система JUnitSystem, String ... args)
в источнике JUnitCore .
Да, вы должны зарегистрировать TextListener
следующим образом:
JUnitCore junit = new JUnitCore();
junit.addListener(new TextListener(System.out));
junit.run(TestReader.class);