0

コマンドラインを使用してsoapuiテストを実行しています。現在、次のようになっています。

/bin/testrunner.sh -j -a -f"output" -R"Project_Report" -F"HTML" /path_to_xml_file/sample.xml

これで /path_to_xml_file/ の下のすべての .xml ファイルを実行したい。何かのようなもの

/bin/testrunner.sh -j -a -f"output" -R"Project_Report" -F"HTML" /path_to_xml_file/*.xml

しかし、うまくいきません。すべてのテストを 1 つの .xml ファイルにまとめたくありません。

次のような for ループを使用してみました: for file in ls *.xml; do /bin/testrunner.sh -j -a -f"output" -R"Project_Report" -F"HTML" /path_to_xml_file/$file 完了

しかし、別の問題があります。最後の .xml ファイルのテスト結果のみが .html ファイルに表示されます。以前のテスト結果をすべて上書きしています。

誰かがこれで私を助けることができますか? ありがとう!

4

1 に答える 1

1

どっ!初めてあなたの -f フラグを見ませんでした。

提供できることがもっとあるかどうかはわかりませんが、これを共有するには、回答として追加する必要があります (読みやすいように)。

これは、testRunner バッチ ファイルを実行するために使用するバッチ ファイルです。あなたが Windows を使用していないことは知っていますが、Linux では、少なくともこのようなもののいくつかがよりクリーンで簡単になっていると思います。基本的な考え方は次のとおりです。

  • 前回の実行からクリーンアップ
  • 結果用にタイムスタンプという名前のディレクトリを作成します
  • テストを実行する
  • 実行出力をファイルにダンプする
  • grep (findstr) エラーを探す出力
  • すべての出力をタイムスタンプという名前のフォルダーにコピーします

Linux でこれらの行に沿って何かを行った場合、すべての HTML ファイルがキャプチャされていることを確認できるはずです。すべての HTML ファイルを 1 つのリストにまとめる必要がある場合は、再度 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%
于 2012-06-08T20:51:53.697 に答える