python-3.x - python unittest模块,记录失败到文件

标签 python-3.x logging python-unittest

我正在寻找清理正常的 python unittest 输出。我希望控制台输出仍然是

test_isupper (__main__.TestStringMethods) ... ok
test_split (__main__.TestStringMethods) ... ok
test_upper (__main__.TestStringMethods) ... ok
test_fail (__main__.TestFail) ... ERROR

----------------------------------------------------------------------
Ran 4 tests in 0.001s

OK

但是对于失败测试,​​我想捕获详细的输出,并将其放入日志文件中。因此,与其与控制台输出内联...
======================================================================
FAIL: test_fail (__main__.TestFail)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test.py", line x
    self.assertTrue(False)
AssertionError: False is not True

======================================================================

与任何调试级别的记录器输出一起记录到文件中以供进一步调查。有没有办法重载 unittest.testcase 中的记录器来做我想做的事?

我应该提到我对python还是很陌生......

最佳答案

通过使用 testResult,我最终能够获得足够接近我想要的结果。目的。从该对象中,我能够获取包含已通过、失败或出现错误的不同测试数据的元组。然后是一个简单的创建一个“prettyPrint”方法来获取这个对象并很好地打印出内容。

确切的配方是:

suite = unittest.TestLoader().loadTestsFromModule( className )
testResult = unittest.TextTestRunner(verbosity=3).run( suite ) 

希望这可以帮助其他想要做类似事情的人。

关于python-3.x - python unittest模块,记录失败到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45155412/

相关文章:

python - 使用 python 3 将一些多条记录插入 mysql 数据库

python - 将值移出对象

bash - 从控制台输出中获取最后 n 行

python - Flask:单元测试时,request.authorization 始终为 None

python - 如何在pymysql中使用多个变量

python - 为什么我不能使用 `strip('\"' )` 删除引号?

linux - 如何从单个 cronjob 发送电子邮件和存储日志文件?

ruby - 如何让 Heroku 从工作进程登录?

带有测试/和 src/找不到 src 模块的 Python 单元测试

python - 如何恢复模拟