有人可以告诉我是否可以生成进程然后在集成测试运行完毕后终止该进程?
我目前正在使用ant run插件启动一个grunt连接服务器,我正在使用货物将我的其余应用程序部署到tomcat,这允许我对正在运行的角度Web应用程序进行集成测试,该应用程序调用其他服务。
我几乎拥有我想要的一切但是......当构建完成后,grunt服务器仍然在运行,因为我已将keep alive设置为true。
理想情况下,当我的构建完成时,我想以某种方式杀死服务器的进程。
答案 0 :(得分:0)
我回到这里作为我需要修复的最后一部分,以便在我的构建在maven中运行时,让我的多模块项目构建并针对角度前端和java后端运行集成测试。
杀死生成的节点服务器的最后一件事是使用ant run插件来杀死它(简单的确实!)。
无论如何,希望这可能在将来帮助其他人:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>Run grunt integration-test task in pre-integration-test phase</id>
<phase>pre-integration-test</phase>
<configuration>
<target name="starting">
<echo>
</echo>
<exec executable="cmd" spawn="true" dir="${project.basedir}"
osfamily="windows">
<arg line="/c grunt int-test --no-color > grunt.status " />
</exec>
<exec executable="bash" spawn="true" dir="${project.basedir}"
osfamily="unix">
<arg line="grunt int-test --no-color > grunt.status" />
</exec>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<execution>
<id>Kill NodeServer in post-integration-test phase</id>
<phase>post-integration-test</phase>
<configuration>
<target name="ending">
<echo>
</echo>
<exec executable="cmd" spawn="true" dir="${project.basedir}"
osfamily="windows">
<arg line="/c Taskkill /IM node.exe /F " />
</exec>
<exec executable="bash" spawn="true" dir="${project.basedir}"
osfamily="unix">
<arg line="kill -9 $(ps aux | grep '\snode\s' | awk '{print $2}')" />
</exec>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>