Моя сборка Ant включает задачу junit, которая запускает несколько тестов. Чтобы тесты работали, необходимо изменить значение свойства, которое указывает текущий рабочий каталог (user.dir
), но я не уверен, как этого добиться.
Задача, о которой идет речь, в настоящее время выглядит следующим образом:
<junit printsummary="withOutAndErr" fork="true"
haltonfailure="yes" showoutput="true"
filtertrace="false" dir="C:/workspace/obp-web">
<jvmarg value="-Duser.dir=C:/workspace/obp-web"/>
<classpath>
<fileset dir="${web.lib.dir}" includes="**/*.jar"/>
<fileset dir="${lib.dir}" includes="**/*.jar"/>
</classpath>
<batchtest fork="no" todir="${web.build.dir}/testresults">
<formatter type="xml"/>
<zipfileset src="${web.build.dir}/test-obp-web.jar">
<include name="**/*Test.class"/>
</zipfileset>
</batchtest>
</junit>
Обратите внимание, что я пытался использовать атрибут "dir" и задачу "jvmarg", чтобы изменить рабочий каталог на C: / workspace / obp-web. Однако, когда я запускаю Ant с включенным подробным выводом, я вижу следующий вывод, который указывает, что рабочий каталог не был установлен правильно:
[junit] атрибут dir игнорируется, если работает на той же виртуальной машине
[junit] Использование системных свойств
{java.runtime.name = Java (TM) SE Runtime
Среда,
sun.boot.library.path = C: \ JDK6 \ JRE \ Bin,
java.vm.version = 10.0-b23, ant.lib
rary.dir = C: \ Java \ апач-муравей-1.7.0 \ Lib,
java.vm.vendor = Sun Microsystems Inc.,
java.vendor.url = http://java.sun.com/,
path.separator = ;, java.vm.name = Java
HotSpot (T M) клиентская виртуальная машина,
file.encoding.pkg = sun.io,
user.country = CA,
sun.java.launcher = SUN_STANDARD,
sun.os.patch.level = Пакет обновления 1,
java.vm.specification.name = Спецификация виртуальной машины Java,
user.dir = c: \ workspace \ obp-ear , java.runtime.version = 1.6.0_07-b06,
java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment,
java.endorse
d.dirs = C: \ JDK6 \ JRE \ Lib \ одобрил,
os.arch = x86,
java.io.tmpdir = C: \ Users \ Донал \ AppData \ Local \ Temp \
line.separator =