Als ich Python zum ersten Mal verwendete, hatte ich Schwierigkeiten, bevor ich unittest verwendete. Dies ist also ein Artikel für eine reibungslose Verwendung. Darüber hinaus ist es schwierig, es zu verwenden, wenn Sie nicht die Grundlagen von Python verstehen. Deshalb habe ich es zusammengefasst.
Die Verzeichnisstruktur, die erfolgreich ausgeführt werden kann, lautet wie folgt.
.
├─sample.py
└─tests
├─__init__.py
└─test_sample.py
sample.py
def add(x, y):
return x + y
test_sample.py
import unittest
import sample
class TestSample(unittest.TestCase):
def test_add(self):
self.assertEqual(sample.add(1, 2), 3)
if __name__ == "__main__":
unittest.main()
python -m unittest tests.test_sample Und mit unittest Skript ausführen
Ich kann den Test mit der obigen Methode gut ausführen, habe aber die folgenden Punkte gelernt.
__init__.Was ist py? Ich dachte, aber das Verzeichnis, in dem sich diese Datei befindet, scheint als Python-Paket behandelt zu werden. Deshalb probieren.Mit dem Befehl execute aus dem Verzeichnis, in dem sich py befindet, "testet.test_"Tests" von "Probe".Es scheint, dass Sie das Paket angeben und ausführen können.
* In Python 2.7 ist dies erforderlich, da es nicht als Paket ohne `` `__init __. Py``` erkannt wird. Es ist jedoch nicht erforderlich, da es als Paket erkannt wird, auch wenn es nicht Python 3.5 ist.
Außerdem importiere ich mit test_sample.py und es gibt verschiedene Importsuchpfade, aber der Ausführungspfad ist einer davon. Es scheint, dass Sie mit "Beispiel importieren" importieren können, indem Sie es aus dem Verzeichnis ausführen, in dem sich sample.py befindet.
## Experiment
Wir führen die folgenden Experimente durch, um zu realisieren, was wir gelernt haben.
python tests\test_sample.py
Versuchen Sie es mit.
``` error
Traceback (most recent call last):
File "tests\test_sample.py", line 2, in <module>
import sample
ImportError: No module named sample
Fehler, dass das Beispielmodul nicht gefunden wurde. Der Ausführungspfad scheint in der Testrichtung zu liegen, und es scheint, dass das Beispiel in der nächsthöheren Hierarchie nicht gefunden werden kann.
Fügen Sie test_sample.py jedoch in dieselbe Hierarchie wie das Verzeichnis sample.py ein. python test_sample.py Funktioniert richtig. python -m unittest test_sample Auch hier funktioniert es richtig.
Stellen Sie die Verzeichnisstruktur wieder her und löschen Sie dann die Datei `` `__init __. Py``` python -m unittest tests.test_sample Wenn du rennst ImportError: No module named tests Error. Es scheint nicht als Paket erkannt zu werden.
Zum Schluss gehen Sie zum Testverzeichnis und python test_sample.py Wenn du rennst ImportError: No module named sample Error. python -m unittest test_sample Aber der gleiche Fehler. Mit anderen Worten, es kann nicht importiert werden, da sich kein Beispiel im Ausführungsverzeichnis befindet.
Ich habe gerade versucht, unittest mit Python zu verwenden, aber ich habe viel darüber gelernt, wie man Pakete angibt und wie man über Verzeichnisse nachdenkt, die importiert werden können. Ich habe viel gelernt, weil ich es nicht einfach machen konnte. Ich bin der Meinung, dass die zukünftige Python-Programmierung reibungslos verlaufen kann.
So führen Sie Tests gemeinsam mit dem Python-Komponententest aus
Recommended Posts