Возможно ли иметь pytest в пределах pytest? - PullRequest
1 голос
/ 23 октября 2019

Я сделал pytest, который проверяет все файлы в данном каталоге.

@pytest.mark.dir
def test_dir(target_dir):
    for filename in os.listdir(target_dir):
        test_single(filename)

def test_single(filename):
    ...
    ...
    assert( good or bad )

target_dir предоставляется из командной строки:
pytest -m dir --target_dir=/path/to/my_dir

pytest_addoption() используется для анализа командной строки (код для ясности опущен).

Выходные данные теста дают единственную оценку прохождения / отказа, даже если test_single() запускает сотни раз. Можно ли получить отметку о прохождении / неудаче для каждого файла?

1 Ответ

1 голос
/ 23 октября 2019

Я думаю, что нужно пойти путем параметризации вашей тестовой функции, чтобы target_dir эффективно разделялся на отдельные файлы в приборе filename:

# conftest.py

import os

def pytest_addoption(parser):
    parser.addoption("--target_dir", action="store")

def pytest_generate_tests(metafunc):
    option_value = metafunc.config.option.target_dir

    if "filename" in metafunc.fixturenames and option_value is not None:
        metafunc.parametrize("filename", os.listdir(option_value))
# test.py

import pytest

@pytest.mark.dir
def test_file(filename):
    # insert your assertions
    pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...