Verzeichnisstruktur beim Schreiben von Tests mit Python 3-Standard unittest

Ich habe gehört, dass pytest häufig beim Schreiben von Tests in Python 3 verwendet wird, aber vorerst ist es Standard unittest. Ich habe mich gefragt, ob ich es unter //docs.python.jp/3/library/unittest.html#module-unittest schreiben soll. Deshalb habe ich es zusammengefasst, weil ich einen Versuch und Irrtum gemacht habe.

Verzeichnisstruktur und Codebeispiel

In Bezug auf die Struktur einiger Pakete scheint die Theorie darin zu bestehen, ein Testverzeichnis auf derselben Ebene wie das Paketverzeichnis zu erstellen.

$ tree
.
├── foo
│   ├── foo.py
│   ├──   :
│   └── xxx.py
└── tests
    ├── test_foo.py
    ├──   :
    └── test_xxx.py

foo/foo.py


class Foo:

    def say(self):
        return 'foo'

tests/test_foo.py


from unittest import TestCase
from foo.foo import Foo

class TestFoo(TestCase):

    def test_say(self):
        self.assertEqual(Foo().say(), 'foo')

Testlauf

Führen Sie alle Testfälle im Verzeichnis "tests" aus

$ python -m unittest discover tests

In unittest können Sie alle Tests im Verzeichnis mithilfe des Unterbefehls remove ausführen.

Standardmäßig werden alle "test * .py" -Dateien im angegebenen Verzeichnis ausgeführt, Sie können sie jedoch optional ändern.

Es scheint nicht rekursiv Unterverzeichnissen zu folgen.

Führen Sie nur einen Testfall aus

$ python -m unittest tests.test_foo

Beachten Sie, dass Sie es nicht direkt wie "$ python tests / test_foo.py" ausführen können. Python behandelt das ausgeführte Dateiverzeichnis (/ tests) als Hierarchie der obersten Ebene, sodass Sie nicht zurückgehen und gepackte Dateien importieren können, was zu einem Fehler führt.

Recommended Posts

Verzeichnisstruktur beim Schreiben von Tests mit Python 3-Standard unittest
Verwenden Sie beim Schreiben von Tests mit Python unittest doCleanups für SetUps, die fehlschlagen können
So führen Sie Tests zusammen mit Python unittest aus
Hinweise zur Verwendung des Python-Standards unittest
Fehler beim Spielen mit Python
Erstellen Sie ein Verzeichnis mit Python
Matrixdarstellung mit Python-Standardeingabe
Schließen Sie bestimmte Fälle mit Python unittest aus
Beachten Sie den Python-Codierungsstandard PEP8
Lesen und Schreiben von NetCDF mit Python
Lesen und Schreiben von CSV mit Python
RPC mit Standard-Python 3-Modulen
Wenn matplotlib nicht mit python2.7 funktioniert
Bei Verwendung von MeCab mit virtualenv python
Vorsichtsmaßnahmen bei Verwendung von sechs mit Python 2.5
Beim Schreiben eines Programms in Python
[Python] Format, wenn to_csv mit Pandas
Was soll ich denn mit der Python-Verzeichnisstruktur machen?
Adressiert "Python .h: Keine solche Datei oder kein solches Verzeichnis" bei der Installation von uWSGI mit Python 3.8
Tipps (Kontrollstruktur), die Sie beim Programmieren von Wettbewerben mit Python2 kennen sollten
Tipps (Datenstruktur), die Sie beim Programmieren von Wettbewerben mit Python2 kennen sollten
Berechnen Sie das Standardgewicht und zeigen Sie es mit Python an
Snippet für die Vollbit-Suche mit Python
Hinweise beim Erstellen einer Umgebung mit Python
Zu beachtende Punkte bei der Lösung von DP-Problemen mit Python
Lesen und Schreiben von JSON-Dateien mit Python
UnicodeEncodeError hat Probleme mit der Standardausgabe von Python3
Verwenden Sie den Phantomjs-Webdriver von Selen mit Pythons Unittest
[Tipps] Leicht lesbares Schreiben beim Verbinden von Funktionen in Python
Fehler beim Installieren eines Moduls mit Python pip
Empfohlene Umgebung und Verwendung bei der Entwicklung mit Python
Persönliche Tipps, wenn Sie verschiedene Dinge mit Python 3 tun
Vorsichtsmaßnahmen beim Umgang mit Kontrollstrukturen in Python 2.6
Untersuchung beim Import kann nicht mit Python durchgeführt werden
Ich möchte Temporäres Verzeichnis mit Python2 verwenden
Zeichenkodierung beim Umgang mit Dateien in Python 3
[Python] [vscode] Wenn Sie sich über Space-Tab-Mix ärgern
Teilen Sie Dateien beim Schreiben des Vim-Plugins in Python
Archivieren und komprimieren Sie das gesamte Verzeichnis mit Python
Lesen und Schreiben passt Dateien mit Python (Memo)
Lesen Sie WAV-Dateien nur mit dem Python-Standardpaket
[Webentwicklung mit Python] Vorsichtsmaßnahmen beim Speichern von Cookies
Beispiel für das Lesen und Schreiben von CSV mit Python
Was verwenden Sie beim Testen mit Python?
[Python] Passen Sie Colormap an, wenn Sie Diagramme mit matplotlib zeichnen
Schreiben von Notizen beim Ausführen einer normalen ausführbaren Python-Datei (Datei mit Argparse) mit Jupyter-Notizbuch