运行鼻子测试,修改全局变量,然后再次运行测试

时间:2016-11-21 22:51:40

标签: python nose

我希望运行一个测试模块两次,同时在两者之间修改一个全局变量。

整个测试套件的精简版看起来像这样:

my_var = 'blah'

def test_x():
    assert my_var == 'blah'

if __name__ == '__main__':
    import nose
    result = nose.runmodule()
    my_var = 'asdf'
    import nose
    result = nose.runmodule()

我期待第二次运行失败。但是,鼻子似乎只进行了一次测试:

.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

是否有可能实现我在主程序中的意图?

1 个答案:

答案 0 :(得分:0)

每当您想要使用不同的数据输入运行相同的测试时,您应该查看参数化。

使用鼻子有library这样做,或者你可以写你的方法来做到这一点。在您的情况下,您实际上只需要迭代测试用例并运行相同的断言。

def test_x():
    test_cases = ['blah', 'asdf']
    for my_var in test_cases:
         assert my_var == 'blah'