2014-09-21 42 views
0

我正在尋找一種方法來防止在例如無法聯繫所需的測試服務器時執行測試。如何防止py.tests在未滿足基本要求的情況下運行?

在開始執行測試之前能夠檢測到這一點並且儘可能快地失敗是至關重要的。

測試使用py.test或使用tox調用py.test來運行。

我確實有一段代碼可以檢測測試服務器是否啓動,但我不知道哪個是正確的地方。

最初我認爲這將是一個全球性的夾具,但這並不完全正確,因爲這意味着每個測試都會運行,而我想要的不是運行它們。

回答

0

我使用skipif進行跳過測試。

我有一個函數,根據程序,我需要的可用性,它返回真或假:

def have_gpg(): 
    try: 
     subprocess.call(['gpg', '--version']) 
    except subprocess.CalledProcessError: 
     return False 
    return True 

然後因爲我需要跳過如果GPG是不存在的測試中,我使用SKIPIF:

@pytest.mark.skipif("not have_gpg()") 
def test_gpg_decode(tmpdir): 
    ... 
    assert out = 'test' 

查看更多documentation on skipif

相關問題