ログレベルを取り、それをデフォルトレベルに設定するPythonスクリプトがあります。ログメッセージが通過すると、レベル階層に従って印刷されるか印刷されません(つまり、デフォルトがDEBUGの場合はすべてのメッセージが表示され、デフォルトの場合はCERTICAL & ERRORメッセージのみが表示されます)。ロボットフレームワークがファイルを作成していないか、書き込んでいない
私のPythonコードは、この線に沿っている:
# Sets default log level.
def set_default_level(self,level):
levels = {
'DEBUG': logging.DEBUG,
'INFO': logging.INFO,
'WARNING': logging.WARNING,
'ERROR': logging.ERROR,
'CRITICAL': logging.CRITICAL
}
# Sets up configuration for logging message.
logging.basicConfig(format='%(levelname)s: %(message)s', filename = 'log_file.log', filemode = 'w', level=levels[level])
def log_message(self, lvl, message):
msg_print = {
'[DEBUG]': logging.debug,
'[INFO]': logging.info,
'[WARNING]': logging.warning,
'[ERROR]': logging.error,
'[CRITICAL]': logging.critical
}
msg_print[lvl](message)
だけではPythonの実行中にこのコードは、作業を行います。しかし、Robot Frameworkでこのコードを実行すると、ファイルを作成したり書き込んだりしません。現在私が持っているフレームワークは、次のとおりです。
Test Validate Info Prints
[Documentation] Checks if all BUT debug messages are printed.
... Output should not contain any DEBUG level messages.
Set Default Level ${INFO_LVL}
Log Message ${DEBUG} ${DEBUG_MSG}
Log Message ${INFO} ${INFO_MSG}
Log Message ${ERROR} ${ERROR_MSG}
Log Message ${WARNING} ${WARNING_MSG}
Log Message ${CRITICAL} ${CRITICAL_MSG}
${LogFile}= Get File ./log_file.log
Should contain ${LogFile} this build has no associated authentication!
Should contain ${LogFile} S3 Bucket connected successfully
Should contain ${LogFile} No working Internet connection available
Should contain ${LogFile} Application has failed.
Should not contain ${LogFile} please debug this
これはINFOのデフォルトレベルのテストです。他のテストケースはこのテストケースと非常によく似ていますが、それらのすべてがファイル作成に関して同じ問題を抱えています。私は問題を見てきましたが、何も見つかっていませんでした。最初にPowerShellを使用してフレームワークを実行していましたが、Git BASHと同じ問題に切り替えました。私もWindows 7で動作しています。
ありがとうございました!
私は、ありがとう! Pythonスクリプトでログレベルを変更するだけでなく、Robot Frameworkも変更するようにコードを修正しました。これは今働いているようだ。 – Amanda