我正在尝试捕获警告消息,打印警告消息,然后退出带有传递状态的测试用例。在测试用例中,我有以下代码:
testcase.py:
try:
warnings.filterwarnings('error')
activeConfig(driver, url, None, None, True).confirmConfigSet()
except Warning as e:
print e.message
return
由于我能够毫无问题地发出警告,我只会显示实际发现的警告:
code-where-warning-is-caught.py:
.
.
.
except (Exception, NoSuchElementException, TimeoutException):
global_vars.attemptedToEnableDatabase = True
warnings.warn("\nWARNING : DATABASE PACKAGES HAVE NOT BEEN INSTALLED SO THE DATABASE CANNOT BE ENABLED.", UserWarning)
return
我可以很好地捕获警告,但我一直收到以下错误:
E DeprecationWarning: BaseException.message has been deprecated as of
Python 2.6
如果我删除测试用例代码的'e'部分,看起来像......
try:
warnings.filterwarnings('error')
activeConfig(driver, url, None, None, True).confirmConfigSet()
except Warning:
return
...测试用例完全按照我想要的方式运行,除了它不打印警告消息。如何捕获异常,打印警告消息,并以通过状态退出测试用例?我也对更有经验的编码员可能提出的任何改进想法持开放态度。
答案 0 :(得分:0)
请在这里阅读。他们解释了一切,你可以尝试一下。
https://docs.python.org/2/library/traceback.html
在我最近的项目中,我设法通过执行此操作将仅有关键的消息写入文本文件,
logging.basicConfig(level=logging.CRITICAL,
format = '%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
datefmt = '%m-%d %H:%M',
filename = self.testResultRecord,
filemode = 'w')
下面的行是我的个人格式配置,与日志级别无关。
format = '%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
datefmt = '%m-%d %H:%M',
此致