2015-06-10 24 views
1

如何爲所有的nosetests測試執行setup和teardown功能一次?安裝和拆卸功能對所有的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() 

注意,存在一個不與蟒蛇2.7.9-1,蟒蛇,unittest2 0.5.1-1和python-鼻子1.3.6-1與更換點後,工作回答的similar questionpass並添加行import unittest。 不幸的是,我的聲譽太低,無法對此發表評論。

回答

2

您可以擁有模塊級別設置功能。根據nose documentation

測試模塊提供模塊級別的設置和拆卸;定義該方法 設置,setup_module,安裝程序或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有更多的清晰度。

+0

感謝您的建議。對不起,我的描述不夠清楚。 setup()和teardown()函數只能在所有測試中調用一次。我編輯了我的問題來澄清這個問題。 – gizzmole

+0

更改了答案以反映評論。 – Oleksiy

相關問題