Ant Задача junit не сообщает подробности
Я попытался написать ant с тестом JUnit, но получить результат ниже:
unittest:
[junit] Running com.mytest.utiltest
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit] Test com.mytest.utiltest FAILED
он просто показывает ошибку без сведений о печати, я указываю ниже параметр в файле build.xml
также попытался начать с ant -v or ant -debug
, но не повезло. Может ли кто-нибудь помочь?
<junit printsummary="yes" showoutput="true">
ant 1.8.2, sun jdk1.6.0_20, junit 4.8.2
чтобы сузить проблему, я создал отдельный проект
это мой build.xml
<project name = "TestPrj" default="unittest" basedir = ".">
<target name="unittest" >
<junit printsummary="yes" showoutput="true" >
<classpath>
<pathelement location="./junit-4.8.2.jar"/>
<pathelement location="./ant-junit4.jar"/>
</classpath>
<test name = "com.mytest.unittest.SimpleTest" todir="."/>
</junit>
</target>
</project>
ниже - simpletest.java
package com.mytest.unittest;
import junit.framework.TestCase;
public class SimpleTest extends TestCase{
public void testFirst()
{
assertTrue(true);
}
}
C:\TestPrj > ant
Buildfile: C:\TestPrj\build.xml
unittest:
[junit] Running com.mytest.unittest.SimpleTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0 sec
BUILD SUCCESSFUL
Total time: 0 seconds
C:\TestPrj > папка
Directory of C:\TestPrj
04/02/2011 02:00 PM <DIR> .
04/02/2011 02:00 PM <DIR> ..
04/02/2011 01:56 PM 280 .classpath
04/02/2011 01:54 PM 519 .project
04/02/2011 02:00 PM 7,120 ant-junit4.jar
04/02/2011 02:00 PM 403 build.xml
04/02/2011 01:55 PM <DIR> com
11/17/2010 05:36 PM 237,344 junit-4.8.2.jar
5 File(s) 245,666 bytes
3 Dir(s) 28,451,311,616 bytes free
Почему не создается результат/деталь/отчет JUnit?
Так что в моем реальном случае сбоя я не могу устранить мои вопросы?
Ответы
Ответ 1
Вы должны использовать элемент formatter
внутри задачи junit
. Форматирующий файл по умолчанию создаст файл отчета, но вы можете заставить его распечатать результаты на экране. Вы можете использовать два форматирования: один для вывода на экран, другой для вывода в файл.
Обратите внимание, что вам больше не нужны атрибуты printsummary="yes"
и showoutput="true"
в задаче junit. Теперь форматировщик заботится о выходе.
<project name = "TestPrj" default="unittest" basedir = ".">
<target name="unittest" >
<junit>
<classpath>
<pathelement location="./junit-4.8.2.jar"/>
<pathelement location="./ant-junit4.jar"/>
</classpath>
<formatter type="plain" usefile="false" /> <!-- to screen -->
<formatter type="plain" /> <!-- to file -->
<test name = "com.mytest.unittest.SimpleTest" todir="."/>
</junit>
</target>
</project>
Подробнее читайте junit в руководстве ant.
Ответ 2
Не могли бы вы опубликовать фрагмент, который вызывает junit из build.xml? Может быть несколько причин, по которым сборка не выполняется. Кроме того, отправьте тестовый файл, который вы пытаетесь проверить.
EDIT: вам нужен статический тест?
public class utilTest extends TestCase {
public void testfun() {
assertTrue(true);
}
}
EDIT: попробуйте использовать аргумент outfile
<target name="unittest">
<junit printsummary="yes" showoutput="true">
<classpath>
<pathelement location="./junit-4.8.2.jar"/>
<pathelement location="./ant-junit4.jar"/>
</classpath>
<formatter type="plain" />
<test name="com.mytest.unittest.SimpleTest" outfile="./testresult" />
</junit>
<fail message="test failed" if="test.failure" />
</target>