在鼻子中,无论设置是否成功完成或测试运行状态如何,拆除都会运行。
我想在拆卸中执行一项任务,只有在刚刚运行的测试失败时执行。是否有一种简单的方法可以检索每个单独测试用例的结果并将其传递给要解释的拆解方法?
A
答案 0 :(得分:1)
您必须捕获测试的状态,并将其传递给您的拆解方法。测试状态在鼻子代码中:如果不编写鼻子插件就无法访问。但即使使用插件,您也必须编写自定义装备以将状态传递给拆解方法。但是如果你愿意为了满足你的要求而稍微破解代码的结构,你可能会做这样的事情:
def special_trardown(self, state):
# only state specific logic goes here
print state
def test_one_with_passing_state(self):
try:
test_one(self)
except AssertionError as err:
test_result = "FAIL"
self.special_teardown(test_result)
raise
它并不完美,但它会让其他人看到你的测试显而易见。您还可以将其包装为装饰器/上下文管理器,以获得更多的语法糖。