所有测试测试都执行一次设置和拆卸功能

时间:2015-06-10 08:07:23

标签: python nosetests

如何对所有测试测试执行一次设置和拆卸功能?

def common_setup():
    #time consuming code
    pass

def common_teardown():
    #tidy up
    pass

def test_1():
    pass

def test_2():
    pass

#desired behavior
common_setup()
test_1()
test_2()
common_teardown()

请注意,在使用python 2.7.9-1,python-unittest2 0.5.1-1和python-nose 1.3.6-1后,存在一个similar question的答案。 pass并添加第import unittest行。 不幸的是,我的名声太低,无法评论。

1 个答案:

答案 0 :(得分:3)

您可以拥有模块级别设置功能。根据{{​​3}}:

  

测试模块提供模块级设置和拆卸;定义方法   设置, setup_module ,setUp或setUpModule用于设置,拆卸,   用于拆卸的 teardown_module 或者tearDownModule。

因此,更具体地说,就你的情况而言:

def setup_module():
    print "common_setup"

def teardown_module():
    print "common_teardown"

def test_1():
    print "test_1"

def test_2():
    print "test_2"

运行测试为您提供:

$ nosetests common_setup_test.py -s -v
common_setup
common_setup_test.test_1 ... test_1
ok
common_setup_test.test_2 ... test_2
ok
common_teardown

----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK

您选择的名称无关紧要,因此setupsetup_module的工作方式相同,但setup_module更清晰。