GNU/Linux >> Tutoriels Linux >  >> Linux

pytest - spécifiez le niveau de journalisation à partir de la commande CLI exécutant les tests

Pytest 3.5 a introduit un paramètre

pytest --log-cli-level=INFO

Pour les versions antérieures à 3.5, vous pouvez combiner les options de ligne de commande pytest et le niveau de journalisation python de l'exemple de ligne de commande pour effectuer les opérations suivantes :

Ajoutez ce qui suit à conftest.py :

import pytest
import logging


def pytest_addoption(parser):
    parser.addoption(
        "--log", action="store", default="WARNING", help="set logging level"
    )


@pytest.fixture
def logger():
    loglevel = pytest.config.getoption("--log")
    logger = logging.getLogger(__name__)

    numeric_level = getattr(
        logging,
        loglevel.upper(),
        None
    )
    if not isinstance(numeric_level, int):
        raise ValueError('Invalid log level: %s' % loglevel)

    logger.setLevel(numeric_level)
    return logger

puis demander le logger luminaire dans vos tests

def test_bla(logger):
    assert True
    logger.info("True is True")

Ensuite, lancez pytest comme

py.test --log INFO

pour définir le niveau de journalisation sur INFO .


Ceci est maintenant intégré à pytest. Ajoutez simplement '--log-level=' à la ligne de commande lors de l'exécution de votre test. Par exemple :

pytest --log-level=INFO

Les mises à jour de la documentation peuvent être trouvées ici :https://docs.pytest.org/en/latest/logging.html


Essayez --log-cli-level=INFO

comme :

pytest -vv -s --log-cli-level=INFO --log-cli-format="%(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)" --log-cli-date-format="%Y-%m-%d %H:%M:%S" ./test_file.py

Linux
  1. Rapports d'E/S à partir de la ligne de commande Linux

  2. Comment spécifiez-vous les noms de fichiers dans un zip lors de sa création sur la ligne de commande à partir d'un tube ?

  3. Imprimer la dernière ligne d'un fichier, à partir de la CLI

  4. Exécuter une commande linux à partir de python

  5. Comment exécuter la commande Vim depuis le shell ?

Configurer un espace de travail Linux à distance depuis la ligne de commande

Programmer le matériel à partir de la ligne de commande Linux

Comment redémarrer Icewm depuis la ligne de commande ?

Comment conserver une commande que j'ai lancée à partir du shell en cours d'exécution si je me déconnecte du shell ?

Exécuter des scripts Perl/PHP à partir de la ligne de commande

Enregistrer la sortie d'une commande du terminal Debian dans un fichier