Я создаю пользовательский тестовый бегун для тестовых примеров JUnit, используя run(junit.framework.Test test)
JUnitCore и проходящий в ClassName.suite()
. Мои тесты выполняются, однако возвращенные результаты: null
. Кажется, что объекты не инициализируются в методе setUp()
, потому что setUp()
, по-видимому, никогда не называется так, как должно, даже с аннотацией @Before
. Тесты успешны, если я создаю экземпляр каждого объекта, который требуется в каждом методе тестирования. Этот подход, однако, утомительно и поражает цель проведения тестового класса. Это нормальное поведение? Есть ли лучшие тестовые ролики для JUnit, которые отражают то же поведение, что и тестовый бегун в Eclipse? Благодарю.Метод JUnitCore run() не является неявным вызовом setUp() перед каждым тестом
Вот код для бегуна:
public class TestRunner
{
Result res = new Result();
String results = new String();
JUnitCore runner = new JUnitCore();
protected TestRunner()
{
}
public String runReport(Test input)
{
System.out.println(input.toString());
res = runner.run(input);
String testClass = "Class: ";
String testFailCt = "Failure Count: ";
String testFalures = "Failures: ";
String testRunCt = "Runs: ";
String testRunTm = "Run Time: ";
String testSuccess = "Success: ";
String newln = "\n";
results += testClass + input.getClass() + newln;
results += testFailCt + res.getFailureCount() + newln;
results += testFalures + newln;
List<Failure> failures = res.getFailures();
int i = 0;
for (Failure x: failures)
{
i++;
results += i +": " + x + newln;
}
results += testRunCt + res.getRunCount() + newln;
results += testRunTm + res.getRunTime() + newln;
results += testSuccess + res.wasSuccessful() + newln;
return results;
}
}
Вот как метод runReport()
вызывается из другого класса:
runner.runReport(TestClassName.suite());
То, что я должен пройти в run()
так что setUp()
будет неявно вызываемые перед каждым тестом? Я знаю, что прохождение в сюите не сделает этого. Поэтому я просто изменил свои тестовые примеры, чтобы в каждом тесте были созданы все необходимые объекты.
Вы могли бы показать код? Легче понять, что вы имеете в виду, или увидеть опечатки, которые иногда являются причиной проблемы. –