thierryade-pytest (1.2.0)
Installation
pip install --index-url thierryade-pytestAbout this package
Plugin pytest pour Thierryade : marqueur covers(), propriétés JUnit, et poussée de couverture (Thierryade + rapport Argus).
thierryade-pytest
Plugin pytest pour Thierryade : relie automatiquement vos tests unitaires aux specs (raffinements compris) que vous avez documentées dans Thierryade, et pousse le résultat de chaque run CI directement vers l'outil.
Installation
pip install thierryade-pytest
Aucune configuration supplémentaire : le marqueur covers est
enregistré automatiquement (entry point pytest11), pas besoin de le
déclarer dans votre pytest.ini.
Usage
Dans vos tests, référencez le code de la spec Thierryade (DRH-17) que
ce test vérifie :
import pytest
@pytest.mark.covers("DRH-17")
def test_commit_transfer_locks_the_registration_and_sends_an_email():
...
Un test peut couvrir plusieurs codes : @pytest.mark.covers("DRH-17", "DRH-23").
Un raffinement est une spec comme une autre, avec son propre code. Les
anciens codes de raffinage (DRH-R-9), d'avant la refonte de
Thierryade, restent acceptés : ils désignent désormais la spec qui a
repris ce raffinage.
Après un run normal avec --junitxml=junit.xml, les codes couverts sont
automatiquement sérialisés dans les <properties> de chaque
<testcase>. Poussez-les ensuite vers Thierryade (typiquement une étape
de CI, après le job de tests) :
thierryade-pytest push-coverage \
--junit-xml junit.xml \
--thierryade-url https://thierryade.stationmyr.net \
--thierryade-token "$THIERRYADE_UPLOAD_TOKEN" \
--commit-sha "$GITHUB_SHA" \
--ci-run-url "$CI_RUN_URL" \
--argus-report-out argus-thierryade-report.json
--argus-report-out est optionnel : s'il est fourni, un second fichier
JSON est écrit au format générique d'Argus (« format maison »), à
uploader avec l'action partagée
argus/upload-action :
- uses: https://git.stationmyr.net/argus/upload-action@v1
with:
token: ${{ secrets.ARGUS_UPLOAD_TOKEN }}
reports: custom argus-thierryade-report.json thierryade-coverage
Un code inconnu de Thierryade n'interrompt jamais le reste du push (il est juste signalé) ; une erreur de transport/HTTP, en revanche, fait échouer la commande -- ce mécanisme alimente une vraie base de données, pas juste un badge informatif.
--log-level debug|info|warning|error (défaut info) règle la
verbosité (requêtes HTTP, codes rencontrés, etc. en debug).
Développement
Voir le Makefile (make dev, make test, make lint, make tox).