Предоставляет ли pytest способ автоматического чтения свойств теста из файла yml или conf? - PullRequest
0 голосов
/ 10 июля 2020

Я использую Python 3.8 и pytest для модульного тестирования. У меня есть тесты, похожие на следующие:

def test_insert_record(az_sql_db_inst):
    """."""
    foreign_key_id = 10

Мне не нравится жестко указывать цифру «10» в файле, и я бы предпочел, чтобы это было сохранено в каком-то внешнем файле конфигурации, где другие тесты также могут получить доступ к значению . Предоставляет ли pytest способ сделать это (загрузить значения из файла свойств или файла yml)? Я мог бы просто открыть файл самостоятельно, например,

def test_insert_record(az_sql_db_inst):
    """."""
    file = open('test.txt')
    for line in file:
        fields = line.strip().split()
        foreign_key_id = fields[0]

, но похоже, что есть что-то, что может сделать это автоматически.

1 Ответ

0 голосов
/ 23 июля 2020

Если вы просто хотите инициализировать некоторые константы, вам поможет отдельный config.py.

from config import foreign_key_id

А пакет PyYAML подойдет, если вы предпочитаете текстовые файлы общего назначения.

Однако, если вы хотите указать ожидаемые результаты тестирования или даже разные результаты в зависимости от сценария, ios, @pytest.mark.parametrize может быть хорошим вариантом.

...