У меня есть junit с набором тестов вроде:
public class Test_Job1{
@Test
public void test1(){}
@Test
public void test2(){}
}
public class Test_Job2{
@Test
public void test1(){}
@Test
public void test2(){}
}
@RunWith(Suite.class)
@SuiteClasses({Test_Job1.class, Test_Job2.class})
public class AllTests {}
И муравейник:
<target name="junit" depends="build">
<junit dir="${test.bin}">
<test name="AllTests" failureproperty="test.failed"/>
</junit>
</target>
<target name="fail-report" if="test.failed">
<java classname="ReportGenerator">
</java>
</target>
<target name="test" depends="junit, fail-report" />
Выход на консоль:
[junit] Testcase: test1(Test_Job2): FAILED
[junit] iterable contents differ at index [63], expected: <Var1=111> but was: <Var1=222> //using assertIterableEquals
[junit] junit.framework.AssertionFailedError: iterable contents differ at index [63], expected: <Var1=111> but was: <Var1=222>
[junit] at Test_Job2.test1(Test_Job2.java:33)
[junit] Test AllTests FAILED
В target 'fail-report' Я создаю собственный настраиваемый отчет csv для анализа сбоя, вызывая 'ReportGenerator' class.
Как и в консоли, Test_Job2.test1 не удалось, поэтому я хочу создать собственный файл отчета csv (реализован) только для этого теста.
Как перехватить имя / идентификатор из неудачный / последний выполненный Testcase (например: test1 (Test_Job2) ) в junit, чтобы я мог пройти это как аргумент или вызов определенного класса / метода как ReportGenerator ?
У меня есть свобода изменить что-либо в тестовом проекте (junit) соответственно.
Пожалуйста, помогите мне в том же.
Заранее спасибо.!