[PYTHON] feuille de triche de fichier de réglage tox

Aperçu

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.

Qu'est-ce que tox

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.

Définition du type de fichier

Selon la documentation, les trois types de fichiers sont lus dans l'ordre de priorité suivant.

  1. pyproject.toml
  2. tox.ini
  3. setup.cfg

Le contenu de «tox.ini» est décrit ci-dessous.

Variables incorporées

Une liste de variables intégrées disponibles dans chaque section.

Nom du paramètre Aperçu
{toxinidir} tox.iniRé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}

section globale

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``py38Certains 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ésultats
truePasser avec
false
skip_missing_interpreters Définissez le code de retour en cas d'échec dans la relation d'interprétation
trueEn cas d'échec, le code considéré comme réussi est renvoyé.configLit le fichier de configuration
config

example

tox.ini


[tox]
envlist =
    py38, py37
    flake8
    isort
skipsdist = true
skip_missing_interpreters = true

section env

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 pytestOuflake8Etc
-
deps Spécifiez les dépendances requises pour exécuter la commande
Spécifiez le module directement ou exigez.Décrivez en txt-rrequirements.txtPrécisez avec
En brefpip installPartie facultative de
-
passenv Spécifiez la variable d'environnement que vous souhaitez hériter de l'environnement virtuel d'exécution
LANG``PIP_INDEX_URLEtc. 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 PythontrueLa 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

feuille de triche de fichier de réglage tox
Aide-mémoire au curry
Aide-mémoire SQLite3
feuille de triche pyenv
feuille de triche de commande conda
Aide-mémoire PIL / Pillow
feuille de triche de commande ps
Aide-mémoire de l'API Spark
Aide-mémoire Python3 (basique)
Fiche technique PySpark [Python]
Feuille de triche de tri Python
feuille de triche de réutilisation de la mémoire numpy
[Python3] Entrée standard [Cheet sheet]
Fiche technique de la science des données (Python)
Aide-mémoire sur les pièces jointes de l'API Slack
Fiche technique du didacticiel Python Django
feuille de triche de l'algorithme scikit learn
Apache Beam Cheet Sheet [Python]
Aide-mémoire personnel Google Test / Mock
Aide-mémoire sur le style de livraison continue (CPS)
Aide-mémoire Python (pour les expérimentés C ++)
Meilleures pratiques pour les fichiers de configuration dans Flask