2016-10-06 6 views
0

Ich habe ein Socket-Programm - 2 Skripte, Server und Client. Auf Serverseite habe ich viele Funktionen. Ich möchte diese Funktionen testen. Ich bin neu in Python. Gefunden etwas namens Pytest. Also für alle Funktionen auf meiner Serverseite habe ich so etwas gemacht.pytest sammeln 0 Artikel

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

Ich nannte dieses Server-Skript als test_server.py und importierte Pytest. Ich habe auch pytest auf Client-Seite importiert und umbenannt das Skript dann auf test_client.py wenn ich

py.test test_server.py

und dann

py.test unter Verwendung eines Lauf test_client.py

Auf Server-Seite heißt es sammeln 0 Elemente, und das ist es. Es sammelt keine. Irgendeine Idee, wo ich falsch liege. Übrigens habe ich es mit einfachen Python-Codes versucht. Dort funktioniert pytest richtig. Ist es, dass pytest nicht mit Socket-Programmierung funktioniert oder mache ich einen Fehler? Es gibt auch keine Fehler in den Codes, ohne pytest zu verwenden. Es arbeitet völlig in Ordnung, wenn ich

Python test_server.py

tue und dann,

Python test_client.py

Antwort

1

wenn Sie Ihre Kunden testen mögen Funktionen sollten Sie eigentlich Serverantworten verspotten. Wenn Sie einige Integrationstests für den Client ausführen möchten. Dann starten Sie Ihren Server mit:

python test_server.py 

und Ihre Client-Tests als laufen:

py.test test_client.py 

py.test läuft nur Funktionen, die Namen von test_ beginnen, so meine Vermutung, dass der Server auch dann nicht starten mit Pytest.

+0

Vielen Dank. Ich wusste, dass py.test Funktionen, die mit test_ beginnen, als Testfälle betrachtet, aber ich wusste nicht, dass es nur diese Funktionen ausführt. Jetzt kann ich vielleicht nicht mehr tun, was Sie gesagt haben, weil ich auf der Serverseite testen muss, nicht auf der Clientseite. Also, ich habe den Teil des Server-Codes, der Socket-Verbindung in einer Funktion kümmert und benannte es mit test_ und jetzt sein Sammeln aller Elemente. –

+0

Ich habe viele Funktionen auf der Serverseite, die ich testen muss. Wenn eine Funktion nach dem Aufruf definiert wird, zeigt sie einen Fehler an, der besagt, dass sie vor der Zuweisung verwendet wurde. Gut, das wird erwartet. Aber wenn ich die Funktionsdefinition vor der Verwendung anbringe, hängt die Serverseite einfach auf und zeigt nichts an. Ich kann nicht sehen, wo ich falsch gelaufen bin. Kann jemand mich auf irgendein Material hinweisen, wo ich darüber lernen kann, wie pytest mit Socket-Programmierung verwendet wird. Zumindest würde ich den Ausführungsablauf mit pytest sehen. –