2014-03-28 67 views
2

鼻子會自動運行它在test_*開始的項目中找到的任何功能。因此,舉例來說,如果有一個調用的函數:防止功能或文件被鼻子運行?

""" 
test_server_setup.py 
sets up a pristine database to use for testing. 
DO NOT RUN ON PROD 
""" 

def test_server_init(): 
    drop_all_tables() 

...然後當你從項目的根目錄中運行命令nosetests鼻子會運行它。是我唯一的選擇重命名這個功能,還是有另一種方式我可以改變文件,以便鼻子忽略它?

回答

5

nottest裝飾正是你所需要的:

nose.tools.nottest(FUNC)

裝飾標記的函數或方法不 測試

from nose.tools import nottest 

@nottest 
def test_server_init(): 
    drop_all_tables() 

要排除鼻子測試發現拾取的文件或目錄,請參閱:

+1

這不回答這篇文章的標題是「阻止與鼻涕Python文件」 ......而你如何預防的功能。 – nmz787

+0

@ nmz787好點,更新了問題標題和答案。謝謝。 – alecxe

+0

'nottest'比現在破碎的'skip'裝飾器更好用! (因爲我仍然可以顯式運行一個指定爲'nottest'的類/方法,但該類/方法不會被鼻子自動運行)謝謝! – nmz787