Comment puis-je définir le répertoire de travail pour la Fourmi 'junit tâche?
Mon Ant comprend un junit tâche qui s'exécute quelques tests. Pour les tests de travail, la valeur de la propriété qui spécifie le répertoire de travail courant (user.dir
) doit être changé, mais je suis pas sûr de la façon d'atteindre cet objectif.
La tâche en question actuellement ressemble à ceci:
<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>
Avis que j'ai essayé d'utiliser à la fois le "dir" attribut et le "jvmarg" tâche de changer le répertoire de travail C:/workspace/obp-web. Cependant quand je lance Ant avec des informations détaillées allumé, je vois la sortie suivante, ce qui indique que le travail de dir n'a pas été réglé correctement:
[junit] attribut dir ignoré si en cours d'exécution dans la même VM
[junit] à l'Aide des propriétés du Système
{java.moment de l'exécution.nom=Java(TM) SE Runtime
De l'environnement,
soleil.de démarrage.de la bibliothèque.path=c:\jdk6\jre\bin
java.vm.version=10.0-b23, ant.lib
library.dir=C:\java\apache-ant-1.7.0\lib
java.vm.fournisseur=Sun Microsystems Inc.,
java.le fournisseur.url=http://java.sun.com/,
chemin d'accès.séparateur=;, java.vm.nom=Java
HotSpot(T M) Client VM,
fichier.l'encodage.pkg=soleil.io,
de l'utilisateur.pays=CA,
soleil.java.lanceur=SUN_STANDARD,
soleil.os.le patch.niveau=Service Pack 1,
java.vm.spécification.=nom de la Machine Virtuelle Java de Spécification,
de l'utilisateur.dir=c:\workspace\obp-oreille, java.moment de l'exécution.version=1.6.0_07-b06,
java.awt.graphicsenv=soleil.awt.Win32GraphicsEnvironment,
java.approuver
d.dir=c:\jdk6\jre\lib\approuvé,
os.arch=x86,
java.io.tmpdir=C:\Users\donal\AppData\Local\Temp\,
ligne.séparateur=
OriginalL'auteur Dónal | 2009-01-21
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser un jvmarg:
Noter que la fourche doit être vrai à la fois sur les junit tag et le batchtest balise batchtest tag remplace la valeur de junit. Jvmargs ne fonctionne que si junit fourches une nouvelle JVM.
Vous ne pouvez pas modifier le répertoire de travail actuel en Java par le réglage de l'utilisateur.dir. Changer le système de propriété est considéré comme une erreur de l'utilisateur.
C'est vrai, mais nous enjoignent à junit la fourche à la fourchette une nouvelle JVM avec cet utilisateur.dir de la propriété, pas de modification de la propriété en cours d'exécution de la JVM
Ne pas l'utiliser. Il fait le natif répertoire de travail incompatibles avec la propriété. Ainsi, des effets bizarres comme somefile.isFile() != somefile.getAbsoluteFile().isFile() qui va se passer.
OriginalL'auteur Kevin
Utiliser l'attribut "dir" (il faut aussi de la fourche de la vm):
http://ant.apache.org/manual/Tasks/junit.html
Il a travaillé pour moi.
Cela a fonctionné pour moi aussi. N'oubliez pas de fourche="oui".
Fonctionne beaucoup mieux que la réponse "correcte" par Kevin.
OriginalL'auteur Jeffrey Fredrick
Avez-vous essayé pathelement emplacement? Cela a fonctionné pour moi.
OriginalL'auteur
Même problème que vous.
Je l'ai résolu en faisant le batchtest fourche à true :
batchtest fourche="pas" ..
à
batchtest fourche="oui" ..
OriginalL'auteur Quentin Castel