【发布时间】:2020-03-23 19:25:54
【问题描述】:
我试图弄清楚如何以一种使来自装饰器的信息可用于设置的方式来装饰测试函数。代码如下所示:
import unittest
class MyTest(unittest.TestCase):
def setUp(self):
stopService()
eraseAllPreferences()
setTestPreferences()
startService()
@setPreference("abc", 5)
def testPreference1(self):
pass
@setPreference("xyz", 5)
def testPreference2(self):
pass
setUp 的目标是了解它正在运行 testPreference1 并知道它需要在启动服务之前将首选项“abc”设置为 5(对于“xyz”和 testPreference2 也类似)。
我当然可以在测试名称上使用条件 (if self._testMethodName == "testPreference1"),但是随着测试数量的增加,这感觉不太容易维护(+ 重构更容易出错)。我希望在setUp 中解决这个问题,而不是覆盖run 实现。我也有
我正在运行 python3.6,但如果有创造性的解决方案取决于较新的 python 功能,我也很乐意了解这一点。
【问题讨论】:
标签: python python-3.x python-3.6 python-unittest