Moja kompilacja Ant zawiera zło, które uruchamia niektóre testy. Aby testy działały, należy zmienić wartość właściwości, która określa bieżący katalog roboczy (user.dir
), ale nie jestem pewien, jak to osiągnąć.Jak ustawić katalog roboczy zadania "junit" Ant?
postawionego zadania aktualnie wygląda tak:
<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>
Zauważ, że starałem się używać zarówno atrybut „dir” i „jvmarg” zadanie, aby zmienić katalog roboczy na C:/roboczy/obp-web. Jednakże gdy uruchomię Ant z wyjściem gadatliwy włączona, widzę następujące wyjścia, co oznacza, że reż pracy nie został prawidłowo ustawiony:
[junit] dir atrybut ignorowane, jeśli działa w tym samym VM
[JUnit] Użycie właściwości systemowe {java.runtime.name = Java (TM) SE wykonawcza Środowisko, sun.boot.library.path = c: \ JDK6 \ jre \ bin java.vm .version = 10.0-b23, ant.lib rary.dir = C: \ java \ apache-ant-1.7.0 \ lib, java.vm.vendor = Sun Microsystems Inc. java.vendor.url = http://java.sun.com/, path.separator = ;, java.vm.name = Java Internetu (TM) Klient VM file.encoding.pkg = sun.io, user.country = CA, sun.java.launcher = SUN_STANDARD, sun.os.patch.level = Service pack 1, java.vm.specification.name = Java Virtual Machine Specification, użytkownik .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 \ endorsed, os.arch = x86, java.io.tmpdir = C: \ Users \ Donal \ AppData \ Local \ Temp \, line.separator =
Próbowałem, ale bez powodzenia. Zaktualizowałem oryginalny przedmiot o informacje. –
Nie można zmienić bieżącego katalogu roboczego w Javie, ustawiając parametr user.dir. Zmiana tej właściwości systemowej jest uznawana za błąd użytkownika. –
@David To prawda, ale instruujemy junit, aby rozwinęło nową maszynę JVM z tą właściwością user.dir, nie modyfikując właściwości w działającej JVM – Kevin