Mit zc.recipe.testrunner steht ein Buildout-Rezept zum Erstellen eigener TestRunner für mehrere Eggs zur Verfügung. Die Buildout-Konfiguration für das Testen aller in einer Instanz verwendete Eggs kann z.B. so aussehen:
[buildout] … parts = … instance test [test] recipe = zc.recipe.testrunner defaults = ['--auto-color', '--auto-progress'] eggs = ${instance:eggs} defaults = ['--auto-color', '--auto-progress', '-q', '--module', '^vs[.]'] initialization = import warnings warnings.simplefilter('ignore', DeprecationWarning)
- eggs
- Liste der zu testenden Eggs wobei jedes Egg in einer neuen Zeile stehen sollte.
- defaults
Standardoptionen, die üblicherweise als Python list literal angegeben werden.
- --ndiff
Wenn ein Doctest fehlschlägt, wird das ndiff.py-Utility zum Anezigen der Unterschiede verwendet. Alternativen zu dieser Angabe sind:
- --udiff für Unified Diffs
- --cdiff für Context Diffs.
Weitere Informationen erhalten Sie in der Dokumentation auf PyPI zu zc.recipe.testrunner.
Alle Eggs im Projekt testen
plone.recipe.alltests erlaubt das Testen aller Eggs eines Buildout-Projekts. bin/alltests durchläuft alle Tests aller Abhängigkeiten des Hauptprodukts. Hierzu sind lediglich folgende drei Zeilen in der buildout.cfg-Datei hinzuzufügen:
[buildout] … parts = … instance test alltests … [alltests] recipe = plone.recipe.alltests
Darüberhinaus können noch folgende Optionen angegeben werden:
- eggs
Eine Liste von Paketen, die getestet werden sollen.
Der Standardwert sind die im [tests]-Abschnitt angegebenen Eggs.
- test-script
Der Ort im Dateisystem von zc.recipe.testrunner.
Der Standardwert ist bin/test
- exclude
Eine Liste von Eggs, die aus dem Testen ausgeschlossen werden sollen. Als Werte können reguläre Ausdrücke angegeben werden, z.B.:
[alltests] recipe = plone.recipe.alltests exclude = repoze.*
- groups
Ein Buildout-Abschnitt mit einem Mapping von Gruppen- zu Paketnamen, z.B.:
[alltests] recipe = plone.recipe.alltests groups = test-groups [test-groups] Zope2 = Acquisition DateTime ExtensionClass Persistence ZODB = transaction zc.lockfile chameleon = chameleon.core cmf.pt z3c.pt
- package-map
Ein Buildout-Abschnitt mit einem Mapping von Distributions- zu Paketnamen, z.B.:
[alltests] recipe = plone.recipe.alltests groups = test-groups [package-map] Plone = Products.CMFPlone