2017-08-25 15 views
1

私はロボットフレームワークでテストとして実行するPythonスクリプトを持っています。このテストは、stdoutstderrを記録するように設定されていますが、テストが合格していれば正常に動作しますが、失敗前に出力が出力されてもテストに失敗した場合はログは出力されません。ロボットフレームワークは、テストが失敗したときにlog.html内に出力されません。

テストが失敗してもstdoutを取得する方法はありますか。

マイロボットファイル:あなたは、テストが失敗したLogを呼び出していることを

*** Settings *** 
Library Process 


*** Test Cases *** 
First test 
    ${result} =  Run Process  python createCommunityTest/createCommunityTest.py 
    Should Be Equal As Integers  ${result.rc} 0  
    Log  ${result.stderr} 
    Log  ${result.stdout} 

テストスクリプトスニペット

 if res.status == 201: 
      sys.exit(0) 
     else: 
      print("ERRRROR") 
      sys.exit(1) 
+0

テストが失敗した場合にRFを停止することも考えられます。したがって、実際には2つのログコマンドに到達することはありません...失敗した部分の前にログを置いてテストします。 – Goralight

+0

私はそれをしました、質問にもそれを書きました.... – Jacob

+0

あなたが「それをしました」と表示します。テストケースに失敗する前に、結果をどのように記録するかを確認する必要があります。記述されているように、 'Run process'キーワードまたは' Integral as equal should 'が失敗した場合、ログステートメントは決して実行されません。 –

答えて

3

問題があります。戻りコードをチェックし、戻りコードがゼロでない場合、テストは他のステートメントの実行を直ちに停止します。

戻りコードを確認する前にLogキーワードを呼び出すだけで解決できます。

Log  ${result.stderr} 
Log  ${result.stdout} 
Should Be Equal As Integers  ${result.rc} 0 
+0

それほど明白ですが、それを見ることができませんでした。ありがとう – Jacob

関連する問題