soapui-testrunner.sh-只接受一个.xml文件作为输入?

soapui-testrunner.sh-只接受一个.xml文件作为输入?,soapui,Soapui,我正在使用命令行运行soapui测试。现在看起来是这样的: /bin/testrunner.sh-j-a-f“输出”-R“项目报告”-f“HTML”/path\u to\u xml\u文件/sample.xml 我想让它运行/path\u to\u xml\u file/下的所有.xml文件。差不多 /bin/testrunner.sh-j-a-f“输出”-R“项目报告”-f“HTML”/path\u to_xml\u file/*.xml 但它不起作用。我不想将所有测试分组到一个.xml文件中

我正在使用命令行运行soapui测试。现在看起来是这样的:

/bin/testrunner.sh-j-a-f“输出”-R“项目报告”-f“HTML”/path\u to\u xml\u文件/sample.xml

我想让它运行/path\u to\u xml\u file/下的所有.xml文件。差不多

/bin/testrunner.sh-j-a-f“输出”-R“项目报告”-f“HTML”/path\u to_xml\u file/*.xml

但它不起作用。我不想将所有测试分组到一个.xml文件中

我尝试使用如下的for循环: 用于
ls*.xml
中的文件;做 /bin/testrunner.sh-j-a-f“输出”-R“项目报告”-f“HTML”/path\u to\u xml\u file/$file 完成

但还有另一个问题。在.html文件中只能看到最后一个.xml文件的测试结果。它将覆盖所有以前的测试结果

有人能帮我吗?
谢谢

Doh!我第一次没看到你的-f旗

我不确定我是否还有更多的东西可以提供,但为了分享这一点,我需要添加它作为一个答案(因此它是可读的)

下面是我用来运行testRunner批处理文件的批处理文件。我知道你不使用Windows,但我想至少有些东西在linux上更干净、更简单。基本上,这个想法是:

  • 从上次跑步中清理干净
  • 为结果创建一个名为directory的时间戳
  • 运行测试
  • 将运行输出转储到文件
  • 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%

linux上有-f标志吗?我使用windows,并且有一个标志:-f(设置要将结果导出到的输出文件夹)。如果有,可以使用包含文件名(或时间戳)的目录名来分隔htmlfiles@chrismead:您好,我的示例显示了-f选项(-f“output”)。在该文件夹下,soapui使用.xml文件名创建文件夹,并将所有.html文件放在该文件夹下。但是每个文件名都是不同的,并且很难通用代码来选择所有文件夹及其下的.html文件