簡體   English   中英

如何設置Ant'junit'任務的工作目錄?

[英]How do I set the working directory for the Ant 'junit' task?

我的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並打開詳細輸出時,我看到以下輸出,表明工作目錄未正確設置:

如果在同一個VM中運行,則會忽略[junit] dir屬性

[junit]使用系統屬性 {java.runtime.name = Java(TM)SE運行時環境,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 HotSpot(TM)客戶端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虛擬機規范, 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 \\ endorsed,os.arch = x86,java.io.tmpdir = C:\\ Users \\ donal \\ AppData \\ Local \\ Temp \\,line。分離器=

使用屬性“dir”(還必須分叉vm):

http://ant.apache.org/manual/Tasks/junit.html

嘗試使用jvmarg:

<junit fork="yes">
  <jvmarg value="-Duser.dir=somedir"/>
  ...
</junit>

請注意,對於junit標記和batchtest標記,fork 必須為true,因為batchtest標記會覆蓋junit中的值。 Jvmargs僅在junit分叉新JVM時才有效。

你嘗試過pathelement位置嗎? 這對我有用。

  <classpath>
<!-- filesets, etc. -->
<pathelement location="C:/workspace/obp-web" />
  </classpath>

和你一樣的問題。

我通過將batchtest fork設置為true來解決它:

batchtest fork =“ no ”..

batchtest fork =“ ”..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM