2011-11-10 26 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