Создание выходной информации jUnit и компиляция в папку / build - PullRequest
2 голосов
/ 02 августа 2011

У меня есть следующий сборочный файл Ant:

<?xml version="1.0"?>    
<!-- the value of the default attr must be one of the targets. -->
<project name="Money" default="build-source" basedir=".">        
    <description>The Money project build file.</description>
    <property name="src" location="."/>
    <property name="build" location="build"/>
    <property name="junit" location="lib/junit-4.9b3.jar"/>

    <path id="_classpath">
        <pathelement path="${junit}"/>
        <pathelement path="${build}"/>
    </path>

    <target name="prepare">
        <mkdir dir="${build}"/>
    </target>

    <target name="build-source" depends="prepare"
            description="compile the source ">
        <javac srcdir="${src}" destdir="${build}">
            <classpath refid="_classpath"/>
        </javac>
    </target>

    <target name="run" depends="build-source">
        <junit printsummary="on" showoutput="on">
            <test name="money.MoneyTest"/>
            <classpath refid="_classpath"/>
        </junit>
    </target>
</project>

Это довольно просто - я просто пытаюсь заставить эту штуку работать правильно. Что я не получаю, это: 1) Почему он выводит скомпилированные файлы в каталог / build / money? Я хочу, чтобы выходной каталог был просто / build, учитывая эту структуру каталогов для моих файлов:

build/
build.xml
lib/
src/
test/

2) Когда есть тесты, которые не проходят, выдается «Test money.MoneyTest FAILED». Я хочу, чтобы он выводил информацию о сбое, ожидаемых / фактических значениях, номере строки и т. Д.

Я не могу понять это, глядя на файл сборки выше. Любой совет?

1 Ответ

2 голосов
/ 02 августа 2011
  1. Выводит скомпилированные файлы в build, создавая структуру каталогов, соответствующую макету ваших пакетов.

    Поскольку вы помещаете ваши классы в пакет money, результат будет ниже build/money. Если вы поместите ваши классы в пакет org.example.foo, ваш вывод будет в каталоге build/org/example/foo.

    Чтобы ваши .class файлы были в build, вам необходимо использовать пакет по умолчанию.

    Редактировать Я предполагаю, что ваши исходные файлы имеют объявление package money;, например:

    package money;
    
    public class MoneyTest {
    ...
    }
    
  2. Если вы добавите элемент <formatter>, подробные отчеты о сбоях теста будут записаны в выходной файл (по умолчанию с именем TEST- name ). См. Также документацию по задаче Ant Junit .

    <junit printsummary="withOutAndErr" showoutput="on">
        <formatter type="plain"/>
        <test name="money.MoneyTest"/>
        <classpath refid="_classpath"/>
    </junit>
    

    Я не нашел способа напрямую распечатывать отчеты о неудачных тестах на стандартный вывод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...