检索鼻子测试案件的结果并且在拆解中使用

时间:2016-02-29 14:31:18

标签: python nose

在鼻子中,无论设置是否成功完成或测试运行状态如何,拆除都会运行。

我想在拆卸中执行一项任务,只有在刚刚运行的测试失败时执行。是否有一种简单的方法可以检索每个单独测试用例的结果并将其传递给要解释的拆解方法?

A

1 个答案:

答案 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

它并不完美,但它会让其他人看到你的测试显而易见。您还可以将其包装为装饰器/上下文管理器,以获得更多的语法糖。