0

有人可以告诉我是否可以生成一个进程,然后在集成测试完成运行时终止该进程?

我目前正在使用 ant run 插件来启动一个 grunt 连接服务器,并且我正在使用 cargo 将我的 rest 应用程序部署到 tomcat,这允许我对正在运行的调用 rest 服务的 angular web 应用程序进行集成测试。

我几乎拥有了我想要的一切,但是......当构建完成时,grunt 服务器仍在运行,因为我已将 keep alive 设置为 true。

理想情况下,当我的构建完成时,我想以某种方式终止服务器的进程。

4

1 回答 1

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>
于 2016-05-25T11:19:33.190 回答