Сеть: «junitreport», похоже, не предоставляет способ установить временную папку, которую он использует при выполнении преобразований, и, похоже, это не способ обновить «java.io.tmpdir» для задачи отчетности , В этом случае установка «user.home» или «java.io.tmpdir» из командной строки при вызове ant не является решением, которое можно использовать.Как переопределить java.io.tmpdir при запуске ant/mantis junitreport?
Подробно: Я использую JUnit задачи в муравьиной/богомола, с этим синтаксисом:
<target name="unittest_report">
<sequential>
<echo>User Home [ user.home ] [ ${user.home} ]</echo>
<echo>Java Temp [ java.io.tmpdir ] [ ${java.io.tmpdir} ]</echo>
<junitreport todir="${dir.unittest.reports}/raw">
<fileset dir="${dir.unittest.reports}/raw">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${dir.unittest.reports}"/>
</junitreport>
</sequential>
</mantis:modifyenvironment>
Это кажется очень стандартное применение, с добавлением «эхо» для отображения значений системных свойств, которые активны при выполнении задачи.
Задача работает отлично, за исключением того, что обработка записи временного вывод относительно временного каталога Java (java.io.tmpdir):
[15:55:03+0000/tester/unittest_report/echo] User Home [ user.home ] [ C:\Users\MyUser ]
[15:55:03+0000/tester/unittest_report/echo] Java Temp [ java.io.tmpdir ] [C:\Users\MyUser\AppData\Local\Temp\ ]
[15:55:04+0000/tester/unittest_report/junitreport] Processing c:\work\tester\build\reports\unittest\raw\TESTS-TestSuites.xml to
C:\Users\MyUser\AppData\Local\Temp\null591799606
ключевых ценностей являются «java.io.tmpdir» значение и запись в «C: \ Users \ MyUser \ AppData \ Local \ Temp \ null591799606».
Я попытался временного обновления временный каталог, используя «sysproperty», например:
<mantis:modifyenvironment>
<sysproperty key="java.io.tmpdir" value="${dir.build}/junit.report.tmp"/>
<sequential>
<echo>User Home [ user.home ] [ ${user.home} ]</echo>
<echo>Java Temp [ java.io.tmpdir ] [ ${java.io.tmpdir} ]</echo>
<junitreport todir="${dir.unittest.reports}/raw">
<fileset dir="${dir.unittest.reports}/raw">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${dir.unittest.reports}"/>
</junitreport>
</sequential>
</mantis:modifyenvironment>
Но это не имеет никакого эффекта.
Тогда:
1) Правильно ли это ожидание «sysproperty» обновить системное свойство для выполнения этой задачи «junitreport»? Например, эффект «sysproperty» может быть ограничен вложенными «java» последовательными вызовами задачи, и в этом случае ожидание того, что обновление будет видимым для «junitreport», было бы неверным.
2) Или, в частности, существует ограничение на «java.io.tmpdir», которое мешает этому работать?
3) Или, есть ли ошибка в «sysproperty»?
Для этой проблемы мне не удалось обновить «java.io.tmpdir» (или «user.home») из командной строки. Эти значения не могут быть изменены в более широкой области, чем вызовы задачи «junitreport».
Наконец: Не уверен, что, если он подходит под этим же набором вопросов:
4) Где документация для «богомол: modifyenvironment»? Я нахожу это в своем локальном «mantis.jar», но я не нахожу документацию для него в руководстве/документации по мантизму.
5) Этот «junitreport» изменяет файловую систему через «java.io.tmpdir» без возможности переопределения, кажется, очень плохая практика.
Вопрос 5: Почему это плохая практика? Предполагается, что tmpdir будет служить для этих вопросов.Вы не должны заботиться о содержимом tmpdir (за исключением очистки их время от времени), потому что результаты _definitive_ записываются в другом месте. –