8

我正在扩展 ANT 构建脚本以允许 TeamCity 构建代理运行 Selenium 测试。

在这样做时,需要一个以 selenium 启动的服务器,该服务器最终不会关闭。所以我添加了一个额外的目标来在每个 TC 构建结束时对 exe 名称执行 taskkill。

taskkill 是否需要 exe 的绝对路径,因为以下不起作用;

<target name="shutdown.server" depends="init.properties" description="Shutdown the server after Selenium">
    <exec osfamily="windows" executable="cmd.exe" spawn="true">
        <arg line="taskkill /f /t /im app.exe"/>
    </exec>
</target>

这个过程似乎有几个孩子,这就是我选择的原因,/f /t但正如我所说,目前他们都没有关闭。

4

2 回答 2

8

那很容易;

<target name="shutdown.server" depends="init.properties" description="Shutdown the server after Selenium">
    <exec executable="taskkill">
        <arg line="/im app.exe /f /t"/>
    </exec>
</target>
于 2013-03-20T08:36:55.477 回答
0

这是一篇旧帖子,通常我使用 . timeout="milliseconds",但是对于长时间运行的进程,我发现杀死Ant启动的进程(尤其是java.exeEclipse 中的线程)的最佳方法是使用pskill.exe

只需将 pskill64.exe 加载到项目目录并运行以下Ant构建。

<project name="project" default="shutdown.java.tasks" basedir="../">
<target name="shutdown.java.tasks">

    <exec executable="path.to.pskill.in.your.project\pskill64">
        <arg value="java.exe" />
    </exec>

</target>

典型的输出是:

shutdown.java:
 [exec] PsKill v1.16 - Terminates processes on local or remote systems
 [exec] Copyright (C) 1999-2016  Mark Russinovich
 [exec] Sysinternals - www.sysinternals.com
 [exec] 8 processes named java.exe killed.

构建成功总时间:387 毫秒

于 2021-12-10T09:15:09.290 回答