2017-12-18 6 views
0

Ich habe eine Liste von Skripts, die ich nacheinander ausführen möchte. Wie gehe ich vor?Wie rufe ich ein anderes Skript mit Pytest

habe ich in der Regel

from subprocess import call 
call(["python","C:\\11.py"]) 

verwendet Aber ich will es in pytest zu tun.

A.py

print('h') 

if __name__ == '__main__': 
    test_add() 

Test_add.py

print('k') 

if __name__ == '__main__': 
    test_add2() 

test_add2.py

print('done') 
+0

Was haben Sie Trie d .... Die Dokumentation für Pytest ist sehr klar. Es würde auch helfen, wenn Sie Ihre Verzeichnisstruktur hinzugefügt haben. Haben Sie "__init __. Py", um Ihre Sammlung zu einem Paket zu machen? – Zak

+0

* Die Dokumentation für Pytest ist sehr klar. * Nur ein Tipp: Niemals davon ausgehen. Ich helfe meinen Kollegen, die pytest Docs regelmäßig zu analysieren. Wenn Sie mit Komponententests und dem damit verbundenen Jargon nicht vertraut sind, können die Dokumente ziemlich abstrakt sein. Eine bessere Frage wäre: "Welche Teile der Dokumentation haben Sie Probleme zu verstehen?" –

Antwort

0

Wenn Sie ein Python-Paket haben mit __init__.pyThese docs für mehr Details zu sehen.

Im einfachsten Fall haben Sie zwei Dateien. Dein Modul und das Pytest-Modul. Diese können in den gleichen Ordner gelegt werden, sagen wir ProjectA.

ProjectA/ 
    a.py 
    test_a.py 

a.py

def some_code(): 
    print('code to be tested') 

test_a.py

import a 

def test_some_code(): 
    a.some_code() 

Dann den Code auszuführen:

$ cd path/to/ProjectA 
$ pytest 
Verwandte Themen