我有一个Pythonunittest.TestCase
类的自定义专业化,其中包括自动日志记录&提供了定制的业务验证方法,可用于大量不同的定制测试场景。
我需要一个自定义版本的Python单元测试。TestCase.fail(…(,它可以与记录器而不是格式化程序使用相同的消息字符串。
我想避免像这样定义我的消息字符串的两个版本:
def verifySomething(self, p_one:str, p_two:str):
if self.someClass.some_command():
self.test_result = TestResult.PASSED
message = "my custom message : %s and %s - %s"
self.logger.info(message, p_one, p_two, self.test_result)
else:
self.test_result = TestResult.FAILED
message = "my custom message : {} and {} - {}".format(p_one, p_two, self.test_result)
self.fail(message)
相反,做一些类似的事情,
def verifySomething(self, p_one:str, p_two:str):
message = "my custom message : %s and %s - %s"
if self.someClass.some_command():
self.test_result = TestResult.PASSED
self.logger.info(message, p_one, p_two, self.test_result)
else:
self.test_result = TestResult.FAILED
self.fail(message, p_one, p_two, self.test_result)
注意:这是一个简化的例子,我省略了Pre&为简洁起见,张贴条件。
摘要:如何编写一个覆盖Python单元测试的自定义失败函数。TestCase.失败(…(吗?
我只需要预先格式化消息:
def verifySomething(self, p_one:str, p_two:str):
if self.someClass.some_command():
self.test_result = TestResult.PASSED
display_func = self.logger.info
else:
self.test_result = TestResult.FAILED
display_func = self.fail
message = "my custom message: {} and {} - {}".format(p_one, p_two, self.test_result)
display_func(message)
不需要利用self.logger.info
的能力来为您编写最后一个字符串。