Не можете указать местоположение файла данных Cobertura для сервера, работающего под Ant? - PullRequest
2 голосов
/ 08 октября 2010

У меня есть скрипт сборки Ant, который обрабатывает некоторые файлы JAR, запускает некоторые серверы с использованием этих файлов JAR, а затем запускает комплексный набор тестов Junit для них.

Я хочу записать файл cobertura.ser с каждого сервера в отдельный файл.

На серверах должен быть установлен рабочий каталог, чтобы они могли получать файлы конфигурации. Система требует, чтобы путь к классам не использовался для получения этих файлов.

Установка системного свойства net.sourceforge.cobertura.datafile позволяет устанавливать файл данных, и это работает нормально, пока свойство "dir" не будет установлено для задачи ant java. После установки dir сервер запускается правильно, тестовый набор работает нормально, но когда сервер выключается, файл данных не записывается.

Вот фрагмент build.xml:

<parallel>
    <daemons>
        <java fork="true" dir="src\main\resources\conf\my.server" classname="my.Server">
            <sysproperty key="net.sourceforge.cobertura.datafile" file="target\cobertura.ser" />
            <classpath>
            ...
            </classpath>
            <arg value="-server" />
        </java>

        ...more servers...

        ...run junit tests...

    </daemons>
</parallel>

1 Ответ

0 голосов
/ 11 октября 2010

Ответ - не запускать серверы как демоны. Мы делали это так, чтобы серверы автоматически отключались после завершения задачи junit, но на самом деле инструментарий Cobertura не улавливал тот факт, что серверы выключались, и поэтому никогда не записывал различные файлы cobertura.ser. .

Решением было удалить задачу демонов и добавить явный механизм отключения сервера, который мы могли бы вызвать из Ant после завершения тестов.

...