2016-10-06 77 views
0

我有一個套接字程序 - 2個腳本,服務器和客戶端。在服務器端,我有許多功能。我想測試這些功能。我是python的新手。找到一種叫pytest的東西。所以對於我服務器端的所有功能,我做了這樣的事情。pytest收集0項

def fun(a): 
    // fn definition 
    return b 
def test_fun(): 
    assert fun(test_case) == "expected value" 

我將此服務器腳本命名爲test_server.py並導入了pytest。我已導入在客戶端pytest也並改名爲腳本,然後test_client.py當我運行使用

py.test test_server.py

然後

py.test test_client.py

在服務器端它說收集0項,就是這樣。它不收集任何。任何想法我錯了。順便說一句,我嘗試了簡單的Python代碼。 pytest工作正常。是pytest不適用於套接字編程還是我犯了什麼錯誤?在沒有使用pytest的情況下代碼也沒有錯誤。這是工作完全正常,當我做

蟒蛇test_server.py

然後,

蟒蛇test_client.py

回答

1

,如果你想測試你的客戶你實際上應該模擬服務器響應的功能。如果你想爲客戶端運行一些集成測試。然後啓動服務器:

python test_server.py 

和運行客戶端的測試爲:

py.test test_client.py 

py.test只運行其名稱從開始TEST_功能,所以我的猜測您的服務器甚至不啓動與pytest。

+0

非常感謝。我知道py.test將以test_開頭的函數視爲測試用例,但我不知道它只執行那些函數。現在我可能無法像你說的那樣做,因爲我需要在服務器端進行測試,而不是在客戶端進行測試。所以,我把服務器代碼中負責套接字連接的部分放在一個函數中,並用test_ 命名,現在它收集所有項目。 –

+0

我在服務器端有很多功能需要測試。如果一個函數在被調用後被定義,它會向我顯示一個錯誤,說明它在賦值之前被使用。好吧,這是預料之中的。但是如果我在使用函數定義之前,服務器端就掛起來,什麼都不顯示。我無法看到我出錯的地方。有人可以指點我可以學習pytest如何與套接字編程一起使用的任何材料。至少使用pytest看到執行流程會幫助我。 –