Depuis que j'ai introduit tox après avoir étudié avec le module CI pour Python, je vais décrire le contenu que j'écris souvent dans le fichier de configuration pour moi-même.
> = 3.14
.C'est un outil qui peut effectuer des tests dans MultiEnvironment en utilisant virtualenv
.
Il est pratique de pouvoir tester le module avec plusieurs versions de Python.
Selon la documentation, les trois types de fichiers sont lus dans l'ordre de priorité suivant.
Le contenu de «tox.ini» est décrit ci-dessous.
Une liste de variables intégrées disponibles dans chaque section.
Nom du paramètre | Aperçu |
---|---|
{toxinidir} | tox.ini Répertoire où |
{toxworkdir} | Le répertoire dans lequel l'environnement virtuel est créé |
{envname} | Nom de l'environnement virtuel,[tox:{envname}] Ce qui a été décrit dans la partie de |
{envdir} | Répertoire d'environnement virtuel, par défaut{toxworkdir}/{envname} |
Cette section décrit les paramètres courants. «[tox]» Décrit ci-dessous.
Nom du paramètre | Aperçu | Valeur par défaut |
---|---|---|
envlist | Plusieurs environnements d'exécution peuvent être décrits en énumérant, en séparant par des virgules ou en coupant des lignes Décrit en gros py37``py38 Certains sont préparés par défaut |
- |
toxworkdir | Le répertoire dans lequel l'environnement virtuel est créé Les fichiers créés par tox sont stockés dans ce répertoire |
{toxinidir}/.tox |
skipsdist | S'il faut emballer les résultatstrue Passer avec |
false |
skip_missing_interpreters | Définissez le code de retour en cas d'échec dans la relation d'interprétationtrue En cas d'échec, le code considéré comme réussi est renvoyé.config Lit le fichier de configuration |
config |
example
tox.ini
[tox]
envlist =
py38, py37
flake8
isort
skipsdist = true
skip_missing_interpreters = true
Cette section décrit les détails de chaque environnement décrit dans la liste d'environnement de la section globale. [tox: {envname}]
Décrit ci-dessous.
Nom du paramètre | Aperçu | Valeur par défaut |
---|---|---|
commands | Obligatoire Contenu des commandes à exécuter dans l'environnement actuel coverage run -p -m pytest Ouflake8 Etc |
- |
deps | Spécifiez les dépendances requises pour exécuter la commande Spécifiez le module directement ou exigez.Décrivez en txt -rrequirements.txt Précisez avecEn bref pip install Partie facultative de |
- |
passenv | Spécifiez la variable d'environnement que vous souhaitez hériter de l'environnement virtuel d'exécutionLANG``PIP_INDEX_URL Etc. peut être défini |
- |
setenv | Définir de nouvelles variables d'environnement dans l'environnement virtuel d'exécution | - |
whitelist_externals | Il n'est pas préparé du côté de l'environnement virtuel d'exécution, mais spécifiez-le lorsque vous souhaitez l'utiliser sans problème avec les commandes de l'environnement local | - |
alwayscopy | Si vous n'aimez pas les liens symboliques vers les fichiers Pythontrue La désignation |
false |
changedir | Spécifiez le répertoire de travail lors de l'exécution de la commande | {toxinidir} |
envlogdir | Définir le stockage des fichiers journaux | {envdir}/log |
description | Donnez une brève description Le contenu est affiché si détaillé est spécifié lors de l'exécution de la commande d'affichage d'environnement avec tox. |
no description |
example
tox.ini
[tox]
envlist =
py38
flake8
skipsdist = true
#Détails de l'environnement py38
[testenv]
passenv = LANG
deps = -rrequirements.txt
passenv = PYTHONPATH
setenv =
PYTHONDONTWRITEBYTECODE=1
changedir = tests
commands =
coverage run -p -m pytest
#détails de l'environnement flake8
[testenv:flake8]
skip_install = true
deps =
flake8 >= 3.7
flake8-import-order
changedir = {toxinidir}
description = 'check pep8 style'
commands = flake8 module
Les paramètres de pytest et flake8 lui-même sont décrits dans setup.cfg
.
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