Da ich tox nach dem Studium mit dem CI for Python-Modul eingeführt habe, werde ich den Inhalt, den ich häufig schreibe, für mich selbst in der Einstellungsdatei beschreiben.
> = 3.14
.Es ist ein Tool, das Tests in MultiEnvironment mit "virtualenv" durchführen kann. Es ist praktisch, das Modul mit mehreren Python-Versionen testen zu können.
Gemäß der Dokumentation werden die drei Dateitypen in der folgenden Prioritätsreihenfolge gelesen.
Der Inhalt von "tox.ini" wird unten beschrieben.
Eine Liste der eingebetteten Variablen, die in jedem Abschnitt verfügbar sind.
Name einstellen | Überblick |
---|---|
{toxinidir} | tox.ini Verzeichnis wo |
{toxworkdir} | Das Verzeichnis, in dem die virtuelle Umgebung erstellt wird |
{envname} | Name der virtuellen Umgebung,[tox:{envname}] Was wurde in dem Teil von beschrieben |
{envdir} | Standardmäßig Verzeichnis der virtuellen Umgebung{toxworkdir}/{envname} |
In diesem Abschnitt werden allgemeine Einstellungen beschrieben. [tox]
Unten beschrieben.
Name einstellen | Überblick | Standardwert |
---|---|---|
envlist | Mehrere Ausführungsumgebungen können durch Aufzählen, Trennen durch Kommas oder Trennen von Zeilen beschrieben werden Grundsätzlich beschrieben py37``py38 Einige sind standardmäßig vorbereitet |
- |
toxworkdir | Das Verzeichnis, in dem die virtuelle Umgebung erstellt wird Von tox erstellte Dateien werden in diesem Verzeichnis gespeichert |
{toxinidir}/.tox |
skipsdist | Gibt an, ob die Ergebnisse verpackt werden sollentrue Überspringen mit |
false |
skip_missing_interpreters | Legen Sie den Rückkehrcode fest, wenn er in der Interpreter-Beziehung fehlschlägttrue Wenn dies fehlschlägt, geben Sie den Code zurück, der als erfolgreich gilt.config Liest aus der Konfigurationsdatei |
config |
example
tox.ini
[tox]
envlist =
py38, py37
flake8
isort
skipsdist = true
skip_missing_interpreters = true
In diesem Abschnitt werden die Details der einzelnen Umgebungen beschrieben, die in der Envlist des globalen Abschnitts beschrieben sind. [tox: {envname}]
Wird unten beschrieben.
Name einstellen | Überblick | Standardwert |
---|---|---|
commands | Verpflichtend Inhalt der Befehle, die in der aktuellen Umgebung ausgeführt werden sollen coverage run -p -m pytest Oderflake8 Und so weiter |
- |
deps | Geben Sie die Abhängigkeiten an, die zum Ausführen des Befehls erforderlich sind Geben Sie das Modul direkt an oder benötigen Sie.Beschreibe in txt -rrequirements.txt Geben Sie mit anZusamenfassend pip install Optionaler Teil von |
- |
passenv | Geben Sie die Umgebungsvariable an, die Sie an die virtuelle Ausführungsumgebung erben möchtenLANG``PIP_INDEX_URL Usw. kann eingestellt werden |
- |
setenv | Legen Sie neue Umgebungsvariablen in der virtuellen Ausführungsumgebung fest | - |
whitelist_externals | Es wird nicht auf der Seite der virtuellen Ausführungsumgebung vorbereitet, sondern muss angegeben werden, wenn Sie es ohne Probleme mit Befehlen in der lokalen Umgebung verwenden möchten | - |
alwayscopy | Wenn Sie keine symbolischen Links zu Python-Dateien mögentrue Bezeichnung |
false |
changedir | Geben Sie das Arbeitsverzeichnis an, wenn Sie den Befehl ausführen | {toxinidir} |
envlogdir | Festlegen des Protokolldateispeichers | {envdir}/log |
description | Geben Sie eine kurze Beschreibung Der Inhalt wird angezeigt, wenn beim Ausführen des Umgebungsanzeigebefehls mit tox ausführlich angegeben wird. |
no description |
example
tox.ini
[tox]
envlist =
py38
flake8
skipsdist = true
#Details zur py38-Umgebung
[testenv]
passenv = LANG
deps = -rrequirements.txt
passenv = PYTHONPATH
setenv =
PYTHONDONTWRITEBYTECODE=1
changedir = tests
commands =
coverage run -p -m pytest
#Details der flake8-Umgebung
[testenv:flake8]
skip_install = true
deps =
flake8 >= 3.7
flake8-import-order
changedir = {toxinidir}
description = 'check pep8 style'
commands = flake8 module
Die Einstellungen für pytest und flake8 selbst sind in setup.cfg
beschrieben.
setup.cfg
[tool:pytest]
testpaths = tests
[coverage:run]
branch = True
source =
module
tests
[flake8]
exclude = build,.git/*,.tox/*,./tests/*
ignore =
# allow Multiple spaces before Operator
E221
max-line-length = 140
Reference
Recommended Posts