2011-11-10 28 views
0

我想知道是否有可能讓Ant啓動後臺服務器守護程序,以便我可以針對需要與服務器通信的客戶端編寫測試。我已經嘗試創建java任務,如下所示:Ant爲junit測試啓動後臺進程

 <java classpath="${jar.dir}/foo.jar" classname="foo.Server" fork="true" failonerror="true"> 
     <arg value="7777"/> 
    </java> 

哪個正確地啓動服務器,但會無限期地阻止。如果我添加spawn="true",我得到這個:

spawn does not allow attributes related to input, output, error, result 
spawn also does not allow timeout 
finally, spawn is not compatible with a nested I/O <redirector> 

我認爲這是由參數引起的,但它是由服務器所需的,我不知道如何解決它。

這裏是我當前的JUnit的目標是什麼樣子:

<target name="junit" depends="build-jar"> 
    <mkdir dir="${report.dir}"/> 

    <junit printsummary="yes"> 
     <classpath> 
      <path refid="junitcp"/> 
     </classpath> 
     <formatter type="brief"/> 
     <batchtest fork="yes" todir="${report.dir}"> 
      <fileset dir="${homeDir}" includes="foo/*Test.java"/> 
     </batchtest> 
    </junit> 
</target> 
+0

你應該在junit中啓動/停止服務器直接測試。這樣你就不需要依靠ant或其他任何進程來運行測試。 – oers

回答

1

卸下failonerror屬性允許你創建催生了Java進程。

+0

非常感謝,就是這樣。 – septagram