Я пытаюсь написать скрипт, который помогает выбирать параметры pytest в зависимости от ввода пользователя.К сожалению, скрипты всегда терпят неудачу из-за последнего параметра, который относится к маркеру.
Я подозреваю, что кавычка в опции маркера является источником проблемы.К сожалению, я не могу найти обходной путь.
Вот как MWE:
Содержимое test.sh
#!/bin/bash
options=("-v")
options+=("-m \"not dummy\"")
echo "about to launch pytest ${options[@]}"
pytest ${options[@]}
Содержимое test_dummy.py:
import pytest
@pytest.mark.dummy
def test_dummy():
assert(True)
Теперь вывод работающего сценария test.sh:
собирается запустить pytest -v -m "not dummy" =============================================================================================================================== начинается тестовая сессия ==================================================================================================================================== платформа Linux - Python 3.6.4, pytest-3.3.2, py-1.5.2, pluggy-0.6.0 - /home/[...]/anaconda3/bin/python cachedir: .cache rootdir: /home/[...]/pytest, inifile: плагины: cov-2.5.1
========================================================================================================================= тесты не выполнялись в течение 0,00 секунд =========================================================================================================================== ОШИБКА: файл не найден: пустышка "
Конечно, запуск сгенерированной команды
pytest -v -m"не пустышка"
Работает отлично.Как преодолеть эту проблему
Заранее спасибо