Как вводить аргументы командной строки при использовании pytest в VS CodePython

Программы на Python
Anonymous
Как вводить аргументы командной строки при использовании pytest в VS Code

Сообщение Anonymous »

Я настроил тестирование pytest на использование необязательных аргументов командной строки. Я хотел бы запустить и отладить эти тесты в VS Code. Однако мне не удается заставить аргументы командной строки работать с VS Code.
На основе инструкций VS Code по отладке тестов Python я добавил следующую конфигурацию в файл launch.json:< /p>

Код: Выделить всё

{
"name": "Python: Debug Tests",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"purpose": ["debug-test"],
"console": "integratedTerminal",
"args": ["--csvfile='..\\example.csv'","--skip", "1"],
"justMyCode": false
}
Это отличается от инструкции кода VS только тем, что я добавил аргументы для передачи аргументов командной строки. У меня есть другая конфигурация в launch.json, но ее целью не является «отладка-тест» (и когда я добавляю в нее аргументы, pytest все равно не получает мои аргументы).
Мой conftest.py включает в себя следующее, которое работает при использовании pytest вне VS Code:

Код: Выделить всё

def pytest_addoption(parser):
parser.addoption(
"--csvfile", action="store", default=None)
parser.addoption("--skip", action="store", default=None)

@pytest.fixture(scope='session')
def skip(request):
return request.config.option.skip

@pytest.fixture(scope='session')
def data(request):
return pd.read_csv(request.config.option.csvfile)
В результате request.config.option.skip и request.config.option.csvfile всегда имеют значение None (значение по умолчанию). Когда я импортирую sys и просматриваю sys.argv, он не включает аргументы из launch.json.
Я использую Python 3.12 и VS Code версии 1.87.1.

Подробнее здесь: https://stackoverflow.com/questions/781 ... in-vs-code

Вернуться в «Python»