我正在写一个unittest.TestCase为了抽象我们代码的一些细节,我想使用我自己的assert函数,但是我需要将这个assert结果报告给测试结果。我试图重用unittest assert函数,如下所示:
class MyTestCase(unittest.TestCase):
def assertState(state, value):
if state_dict[state] == value:
self.assertTrue(True)
else:
self.assertTrue(False)
问题是我的MyTestCase实例中的asserrState调用将报告assertError,而不是向testresult对象报告错误。在
请建议我如何在的子类中编写自己的assert函数unittest.TestCase. 在
编辑: 我想要完成的是提供我们自己的MyTestCase类作为基类,其中包含更多带有业务逻辑的assert函数。这样,真正的测试只需将MyTestCase子类化并使用这些断言,而不必重复相同的代码。这意味着我想打电话给你MyTestCase.assertState在MyTestCase的一个子类中,仍然向具体的测试结果报告测试失败。像下面这样的。在
^{pr2}$如果有办法的话,请告诉我。在
很晚才回复,但最终还是找到了一个解决方案,因为我在定义自己的TestCase子类时遇到了同样的问题。这可能会对其他人寻找同样的东西有所帮助。在
您只需在定义类的模块中添加
__unittest = True
。在现在,用户定义的assert方法的行为将与unittest.TestCase一个,失败时不会显示不需要的堆栈跟踪。在
适用于Python2.7
来源:http://www.gossamer-threads.com/lists/python/python/1014779
首先,您忘记了
self
参数。其次,你是如何运作的?如果您真的想要测试结果对象,那么您可以这样做:相关问题 更多 >
编程相关推荐