Моя проблема, короче говоря, это то, что я хочу запустить несколько тестов JUnit из командной строки, и я хотел бы быть в состоянии видеть:Получение списка тестов из командной JUnit линии
- список всех тесты (независимо от того, побежали они или нет).
- Список всех пройденных тестов.
- Список всех тестов, которые не удалось
Поводом для первой пули, потому что я считаю, если один тест вызывает System.exit, другие не будут работать, я все еще хочу знать об этих тестах , даже если они не запускались.
Допустим, у меня есть тестовый класс:
import junit.framework.TestCase;
public class ALoadOfTests extends TestCase {
public void testFoo() {
int a = 5;
int b = 10;
int result = a + b;
assertEquals(15, result);
}
public void testBar() {
fail();
}
public void testBaz() {
fail();
}
}
Если я бегу это с помощью команды:
javac -cp ".;C:\Users\username\Desktop\Test\junit-4.11.jar;C:\Users\username\Desktop\Test\hamcrest-core-1.3.jar" ALoadOfTests.java
java -cp ".;C:\Users\username\Desktop\Test\junit-4.11.jar;C:\Users\username\Desktop\Test\hamcrest-core-1.3.jar" junit.textui.TestRunner ALoadOfTsts
Выход является:
.F.F.
Time: 0.002
There were 2 failures:
1) testBar(ALoadOfTests)junit.framework.AssertionFailedError
at ALoadOfTests.testBar(ALoadOfTests.java:12)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
2) testBaz(ALoadOfTests)junit.framework.AssertionFailedError
at ALoadOfTests.testBaz(ALoadOfTests.java:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
FAILURES!!!
Tests run: 3, Failures: 2, Errors: 0
Проблема здесь состоит в том, что на выходе не указывается имя testFoo, которое существует и передается. Кроме того, если я меняю один из них использовать System.exit, то мы не получаем много сообщений вообще, мы просто получаем:
.F.F.
В идеале, чтобы быть в состоянии получить всю информацию, мне нужно, если сначала я смогу распечатать список тестовых имен, прежде чем запускать какие-либо тесты (и любой шанс на System.exit), я могу увидеть, что прошло, а что не удалось (или не запускалось).
Если бы я мог получить вывод, что только выглядит подобно:
Tests:
testFoo
TestBar
TestBaz
Results:
TestFoo(passed)
TestBar(failed:reason)
Тогда я мог бы смело предположить:
TestFoo passed
TestBar failed
TestBaz never ran, probably because some test called system.exit.
Возможно ли это с помощью пользовательского бегуна? Если да, то любые подсказки о том, с чего начать, будем очень благодарны.
К сожалению, у меня нет контроля над кодом, следует предположить, что он может содержать System.exit, возможно, в каждом методе. У меня также мало контроля над тестами, поэтому распечатка имен тестов в методе настройки не идеальна.
Спасибо,