嗬!我第一次没有看到你的 -f 标志。
我不确定我还有更多可以提供的东西,但即使要分享这个,我也需要将其添加为答案(因此它是可读的)。
这是我用来运行 testRunner 批处理文件的批处理文件。我知道您没有使用 Windows,但我猜至少其中一些东西在 linux 上更干净、更容易。基本上这个想法是:
- 从上次运行中清理
- 为结果创建一个名为目录的时间戳
- 运行测试
- 将运行输出转储到文件中
- grep (findstr) 查找错误的输出
- 将所有输出复制到时间戳命名文件夹
如果你在 linux 中按照这些思路做了一些事情,你应该能够确保你的所有 HTML 文件都被捕获。如果您需要将所有 HTML 文件收集到一个列表中,我猜您可以再次使用 grep 来获取该列表。
抱歉,我没有 Linux 示例。
@ECHO OFF
call "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
set hour=%time:~0,2%
if "%hour:~0,1%"==" " set hour=0%time:~1,1%
set timeClean=%hour%_%time:~3,2%_%time:~6,2%
set mydate=%date:~4,2%%date:~7,2%%date:~10,4%
set timestamp=%mydate%_%timeClean%
set newDir=TestResults\%timestamp%
set projFileName=%1
set testSuite=%2
set baseDir=%3
echo BASE DIRECTORY = %baseDir%
SETLOCAL ENABLEEXTENSIONS
setlocal enabledelayedexpansion
del /F /S /Q %baseDir%soapui*.log
del /F /S /Q %baseDir%global-groovy*.log
del /F /S /Q %baseDir%soapui*.log.*
set file=%baseDir%\%projFileName%
set newFolder=%baseDir%Results_%timestamp%
echo %newFolder%
mkdir %newFolder%
set newSummaryFile=%newFolder%\testSummary.txt
echo Executing test %projFileName%
call testrunner.bat -s%testSuite% -r -j -I -S -f%newFolder% %projFileName% > %newFolder%\summary.txt 2>&1
@ping 127.0.0.1 -n 5 -w 1000 > nul
set "content=Failed tests (if any) line numbers:"
for /f "tokens=1,8*" %%i in ('findstr /I /N /C:"ASSERTION FAILED" /C:" ERROR" %newFolder%\summary.txt') do call :addLines Line %%i %%j
goto :end
:addLines
for /f "tokens=1 delims=::" %%z in ("%2") do set "linenum=%%z"
set "content=%content% %1 %linenum%"
GOTO :eof
:end
echo %content% > %newSummaryFile%
xcopy /F *.log %newFolder%