2017-03-23 3 views
2

Für ein Paket, das ich geschrieben habe, habe ich getan python setup.py sdist bdist_wheel, die einige Paketartefakte im Verzeichnis dist/ erzeugt. Jetzt möchte ich die Komponententests des Pakets in diesen Artefakten ausführen. Was ist ein guter Weg, es zu tun?Python: Tests von Rad oder SDist

Um es klar zu sagen: Eine Alternative wäre, die Tests direkt aus den lokalen Quelldateien auszuführen, aber ich möchte vermeiden, dass ich das genaue vorgefertigte Artefakt testen würde, das Benutzer installieren würden (as suggested here).

Ich benutze Python 3, und ich bin auf einer Linux- oder Mac OS-Umgebung. Mein Kontext ist ein Build-Server, der Artefakte (in einem privaten PyPI-ähnlichen Repo) erstellt, testet und dann veröffentlicht, sobald Commits an ein Git-Repository gesendet werden.

Wenn es einen anderen Ansatz gibt, den ich stattdessen verwenden sollte, bin ich ganz Ohr.

Antwort

3

Was können Sie tun, ist:

  • eine virtuelle Umgebung erstellen
  • Installieren Sie Ihr Paket
  • Führen Sie die Tests gegen Ihre installierten Bibliothek Tools wie pytest verwenden, können Sie mehr über pytest gute Praktiken hier lesen : http://pytest.org/dev/goodpractises.html

wie in dem pytest docs darauf nehmen, wie auch für Ihren CI-Server einen Blick auf tox: http://pytest.org/dev/goodpractises.html#use-tox-and-continuous-integration-servers

Dies ist eine ähnliche Frage, wie die installierte Paket zu testen, mit: Force py.test to use installed version of module

+0

Cool, es sieht aus wie ‚tox‘ wird viel über die Einzelheiten für mich behandeln. Vielen Dank. –

Verwandte Themen