【发布时间】:2019-09-01 17:25:52
【问题描述】:
我的项目结构如下:
/root
/tests
common_test_case.py
test_case_1.py
test_case_2.py
...
project_file.py
...
每个测试test_case_... 都继承自unittest.TestCase 和common_test_case.CommonTestCase。 CommonTestCase 类包含应该由所有测试执行的测试方法(尽管使用每个测试唯一的数据,在测试的self.something 中存储和访问)。如果某个特定的测试用例需要一些特定的测试,它们会被直接添加到那个特定的类中。
目前我正在努力将日志记录添加到我的测试中。除其他外,我想记录运行该方法的类(因为上面的方法意味着不同类的相同测试方法名称)。我想坚持使用内置的logging 模块来实现这一点。
我尝试了以下LogRecord attributes:%(filename)s、%(module)s、%(pathname)s。不过,对于common_test_case.py 中定义的方法,它们都将路径/名称返回到common_test_case.py,而不是它们实际运行的测试模块。
我的问题是:
- 有没有办法实现我想要的,只使用内置的
logging模块? - 使用一些第三方/其他模块(我在想可能是
inspect的一些“hacky”解决方案)? - 是否有可能实现(在 Python 中)?
【问题讨论】:
-
您的记录器是如何配置的?
-
@DroidX86,它实际上是每个测试断言的包装器(我没有在这里包含细节,有点“隔离”问题)。演示记录器配置的代码 sn-p 位于 another question of mine。
标签: python python-3.x python-2.7 unit-testing logging