übergabe-parameter aus build.xml um die java-Datei
wenn ich ausführen von java-test-Datei(einzelne Datei) durch eclipse durch die Weitergabe von Argumenten
-DappRoot=ECM -DappName=ESW -Dapp.Modul=FNT -Dapp.env=LOC -DcloneNumber=1
test-Datei ausgeführt, ohne Fehler, wenn ich keine Argumente angegeben Fehler tritt auf, als Könnte Sie nicht beheben Platzhalter 'appRoot'.
Habe ich junit target zu generieren Bericht im html-format.
<target name="junit" depends="init-junit">
<junit printsummary="on" fork="yes" forkmode="perBatch" haltonfailure="false" failureproperty="junit.failure" showoutput="false">
<classpath>
<path refid="CLASSPATH_JUNIT"/>
</classpath>
<batchtest fork="no" todir="${TEST_BUILD_DIR}">
<fileset dir="${COMP_TEST_SRC}">
<include name="**/*Test.java" />
</fileset>
</batchtest>
<formatter type="xml" />
</junit>
<junitreport todir="${JUNIT_REPORT}">
<fileset dir="${TEST_BUILD_DIR}">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${JUNIT_REPORT}"/>
</junitreport>
</target>
Wenn ich über build-Skript, bekomme folgenden Fehler: Konnte nicht lösen Platzhalter 'appRoot", wo diese bestanden hat, als Argumente.
Habe ich parameter übergeben build.xml über eclipse, dieser parameter übergibt build.xml Datei aber nicht vorbei, um java-Dateien. Wie kann ich dieses Problem lösen?
EDIT:
versucht mit folgenden parameter:
<junit printsummary="on" fork="yes" forkmode="perBatch" haltonfailure="false" failureproperty="junit.failure" showoutput="false">
<jvmarg value="-DappRoot=ECM" />
<jvmarg value="-DappName=ESW" />
<jvmarg value="-Dapp.module=FNT" />
<jvmarg value="-Dapp.env=LOC" />
<jvmarg value="-DcloneNumber=1" />
<!--<sysproperty key="appRoot" value="${appRoot}"/>
<sysproperty key="appName" value="${appName}"/>
<sysproperty key="app.module" value="${app.module}"/>
<sysproperty key="app.env" value="${app.env}"/>
<sysproperty key="cloneNumber" value="${cloneNumber}"/>-->
<classpath>
<path refid="CLASSPATH_JUNIT"/>
</classpath>
mit system-Parameter es funktioniert gut, aber dauert sehr lange zum ausführen. mit jvmarg es funktioniert nicht. gleichen Fehler mit
<jvmarg value="-DappRoot=${appRoot}" />
http://ant.apache.org/manual/Tasks/junit.html nicht definieren jede Einschränkung für sys-und jvm-args.
InformationsquelleAutor TechFind | 2011-07-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Dokumentation des junit ant-task zeigt es:
Wenn das appRoot-Eigenschaft übergeben wird als ein system, Eigenschaft, Ameise, Sie können es als ant-Eigenschaft:
ein-system-Eigenschaft ist eine Eigenschaft Durchlaufen -Dproperty=value. jvmarg ist einfach der name, der ant hat gewählt, der für die übergebenen Argumente an die JVM. Ein jvm-argument übergeben werden, ein system Eigenschaft (wie oben), könnte aber auch verwendet werden, um pass etwas anderes (Beispiel):- Xmx512m bestimmt die maximale heap-Größe der JVM).
1) wie kann ich einstellen, Xms und XmX Werte? 2) wenn angenommen, ${appRoot} leer ist, dann möchte ich aufhören zu bauen und informieren die Entwickler, Argumente und ausführen. wie kann ich dies tun?
1) Sie müssen nicht. Aber Sie können mit einem jvmarg : <jvmarg value="-Xmx512m" />. 2) eine andere Frage stellen. Es ist in keinem Zusammenhang zu dieser Frage.
InformationsquelleAutor JB Nizet
Den Sie festgelegt haben
fork="no"
in Ihrembatchtest
element, das überschreiben derfork
Einstellung in derjunit
element. Dies verursacht diejunit
Aufgabe auszuführen in der gleichen JVM wie der ant-Prozess, was bedeutet, dass diejvmarg
Parameter werden ignoriert.Ich würde auch empfehlen, mit einem Gabel-Modus "einmal"; dies wird erheblich verbessern die Leistung.
Versuchen Sie dies:
Hinweis: die
maxmemory
Attribut. Passen Sie den Wert nach Bedarf ein.InformationsquelleAutor Jason Day