Для этого вам доступно множество вариантов. Вот несколько.
1. Напишите приспособление pytest, чтобы проверить, совпадает ли текущий рабочий каталог с желаемым рабочим каталогом, и если нет, переместите все файлы артефактов в желаемый каталог. Если все артефакты, которые вы генерируете, относятся к одному типу файлов (например, * .jpg, * .png, * .gif) и вы просто хотите, чтобы они находились в другом каталоге, этого может быть достаточно. Что-то вроде этого может сработать
from pathlib import Path
import shutil
@pytest.fixture
def cleanup_artifacts():
yield None
cwd = Path.cwd()
desired_dir = Path.home() / 'system-tests' / 'suite-2' / 'sub_suite_2a'
if cwd != desired_dir:
for f in cwd.glob('*.jpg'):
shutil.move(f, desired_dir)
И затем вы можете добавить этот прибор в свои тесты по мере необходимости.
2. Вы можете настроить pytest rootdir
как желаемый каталог, поскольку pytest использует rootdir
для хранения информации о проекте / testrun c.
Когда вы запускаете pytest, запускайте его как
pytest --rootdir=desired_path
См. Здесь для получения дополнительной информации: https://docs.pytest.org/en/latest/customize.html#initialization -determining-rootdir-and-inifile
Если оба не работают для вас, расскажите подробнее о ваших требованиях . Конечно, это можно сделать с помощью pytest.