我正在使用批处理文件通过maven运行一堆selenium自动化。
当自动启动时,它会打开一个新的命令提示符来运行maven命令:
start cmd /c mvn site surefire-report:report -Dtest=uk.co.......
当maven命令提示符关闭时,我会询问正在运行它的人在主命令提示符下按1,这样它就可以将测试结果复制到共享位置。
有时人们忘记按1并且只是关闭所有内容而无法复制,我想知道是否有一种方法可以检测maven命令提示何时关闭然后自动复制结果?
答案 0 :(得分:1)
start "" /wait cmd /c mvn site surefire-report:report -Dtest=uk.co.......
如果不需要新的cmd
窗口,请直接致电cmd /c ....
,或者如果mvn
是批处理文件,请使用call mvn ....
在任何情况下,调用者都会停止执行,直到被调用的进程结束。
答案 1 :(得分:0)
您可以使用文件来指示maven命令处于活动状态:在运行maven命令之前创建文件,并在maven结束时删除它。在主程序中,输入一个等待周期,直到指示文件消失:
rem Create the indicator file:
echo X > mavenActive.txt
rem Start maven and delete the indicator file at end:
start cmd /c mvn site surefire-report:report -Dtest=uk.co....... ^& del mavenActive.txt
rem Wait for the indicator file disappear:
:wait
rem Insert a delay so not use too much cpu:
timeout /t 20 /nobreak
if exist mavenActive.txt goto wait
rem Copy maven results here:
copy ...
如果有多个同时进行的maven进程,您可以为每个指标文件使用不同的数字,然后使用if exist mavenActive*.txt goto wait