2017-04-26 3 views
2

実行中にプレーンテキストのログファイルを作成する方法を説明しているthis documentationと読んでいます。それが言うとそれはDebug FileAll messages got from test libraries are written to themです。私はそのコンテンツのログレベルを制御する方法を探しています。それを得るための仕組みや仕掛けはありませんか?または、Debug fileの機能を持つ他のロボットフレームワークオプション(テストの実行中にプレーンテキストにテスト実行メッセージを書き込むこと)も可能ですか?ロボットフレームワークでプレーンテキストデバッグファイルのログレベルを制御するにはどうすればよいですか?

+0

あなたは '--loglevel

+1

このDebugファイルには経験はありませんが、Listenerインターフェイスを使用して独自のカスタムログを簡単に作成できます:http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#listener-interface –

+0

@Goralightの '--loglevel'オプションは、HTMLレポートとログファイルのログレベルを設定するのに使われます。テストしましたが、デバッグファイルには適用されません。 –

答えて

3

デバッグファイルに書き込まれる詳細の量を制御する方法はありません。デバッグファイルの全体のポイントは、デバッグの目的で詳細な出力を作成することです。

テストが実行されているときに情報をプレーンテキストファイルに書きたい場合は、いつでも好きなように書き込むlistenerを作成できます。

たとえば、各テストの開始時刻と終了時刻を書きたいとします。最初のステップは、リスナーを作成することです。この例では、次の内容で「CustomLog.py」という名前のファイルを作成します。

import datetime 
class CustomLog: 
    ROBOT_LISTENER_API_VERSION = 2 

    def __init__(self, filename='listen.txt'): 
     self.logfile = open("/tmp/robot.log", 'w') 

    def _write(self, message): 
     now = datetime.datetime.now() 
     self.logfile.write(str(now) + " " + message + "\n") 
     self.logfile.flush() 

    def start_test(self, name, attrs): 
     self._write("start_test: %s" % name) 

    def end_test(self, name, attrs): 
     self._write("end_test: %s (%s)" % (name, attrs["status"])) 

    def close(self): 
     self.logfile.close() 

あなたは--listener引数を経由してロボットにこのファイルの名前を渡すことができます:

robot --listener CustomLog.py ... 

リスナーインタフェーススイート、テスト、およびキーワードが開始および停止するアクションを実行する機能を提供します。これらのメソッドはすべてドキュメントに記載されています。

+0

また、[この問題](http://stackoverflow.com/questions/43438551/how-to-set-multi-level-test-setup-teardown-in-robot-framework)の解決に役立ちました。 –

関連する問題