【发布时间】:2022-01-18 00:40:21
【问题描述】:
我正在构建一个测试套件,我需要在其中调用一个 testng.xml 文件,这可能需要一个小时才能完成。接下来我需要调用python脚本来修改结果并返回另一个testng.xml文件。我想把这一切都放到一个批处理文件中,但我不知道如何在调用 python 脚本之前等待第一个脚本完成运行。这是我到目前为止所拥有的,并且可以正常执行。如何插入等待?
set projectLocation=C:\myproject\pom.xml\location
cd %projectLocation%
mvn clean test -DsuiteXmlFile=testng.xml
在此之后,我需要转到 python,调用 python 并运行另一个 testng.xml。我一直在幸运地尝试循环
:LOOP
tasklist /fo csv /fi "IMAGENAME eq regressionTestRunner.xml" 2>NUL | find /I /N "regressionTestRunner.xml">NUL
IF ERRORLEVEL 1 (
GOTO CONTINUE
) ELSE (
echo Running
Timeout /T 5 /Nobreak
GOTO LOOP
)
:CONTINUE
【问题讨论】:
-
如果我没记错的话,问题在于懒惰的开发人员手册页和懒惰的编码风格。
mvn真的是一个批处理文件,我假设mvn.cmd,(尽管它可能仍然使用过时的.bat扩展名)。因为它是一个批处理文件,您应该使用CALL命令从另一个批处理文件调用它。当您使用CALL命令时,该批处理文件应该运行,并且只有在它完成后,才运行调用批处理文件中的下一行。所以,根据你的问题内容,我建议你试试Call "%MAVEN_HOME%\bin\maven.cmd" clean test -DsuiteXmlFile=testng.xml,然后你的下一个命令。 -
感谢 Compo,使用 CALL 命令实际上解决了问题
标签: java maven batch-file testing