vscode-python: Argument filtering for pytest fails to handle custom arguments
Issue Type: Bug
I created a fixture in conftest.py that reads at input args to pytest (using pytest_addoption. See code below. When I try and add this option to my settings.json file so that my tests execute properly, it fails with the ERROR: file not found…
Here is my conftest.py file :
import pytest
import os
def pytest_addoption(parser):
parser.addoption("--config_file", action="store")
@pytest.fixture(scope='session')
def config_file(request):
config_file_value = request.config.option.config_file
if config_file_value is None:
print(f'config_file_value = {config_file_value}')
pytest.skip()
elif not os.path.exists(config_file_value):
print(f'config_file_value = {config_file_value}')
pytest.skip()
return config_file_value
And then my settings.json relevant to this:
{
"python.pythonPath": "/usr/bin/python3",
"python.testing.unittestEnabled": false,
"python.testing.nosetestsEnabled": false,
"python.testing.pytestEnabled": true,
"python.testing.cwd": "",
"python.autoComplete.addBrackets": true,
"python.testing.pytestArgs": [
"--config_file app/config.json",
]
}
And finally the output of the console :
ython /root/.vscode-server-insiders/extensions/ms-python.python-2020.4.76186/pythonFiles/testing_tools/run_adapter.py discover pytest -- --rootdir /root/jetson-task-manager -s --cache-clear --config_file app/config.json
Test Discovery failed:
Error: ============================= test session starts ==============================
platform linux -- Python 3.6.9, pytest-5.4.2, py-1.5.2, pluggy-0.13.1
rootdir: /root/jetson-task-manager
plugins: forked-0.2, xdist-1.22.1
collected 0 items
============================ no tests ran in 0.06s =============================
ERROR: file not found: --config_file app/config.json
Traceback (most recent call last):
File "/root/.vscode-server-insiders/extensions/ms-python.python-2020.4.76186/pythonFiles/testing_tools/run_adapter.py", line 22, in <module>
main(tool, cmd, subargs, toolargs)
File "/root/.vscode-server-insiders/extensions/ms-python.python-2020.4.76186/pythonFiles/testing_tools/adapter/__main__.py", line 100, in main
parents, result = run(toolargs, **subargs)
File "/root/.vscode-server-insiders/extensions/ms-python.python-2020.4.76186/pythonFiles/testing_tools/adapter/pytest/_discovery.py", line 44, in discover
raise Exception("pytest discovery failed (exit code {})".format(ec))
Exception: pytest discovery failed (exit code 4)
Running pytest version 5.4.2. Feels to me like this option is taken as if it were a file to test, versus an actual argument. Ideas? Am I missing something?
Extension version: 2020.4.76186 VS Code version: Code - Insiders 1.46.0-insider (d487078dc7fc1c276657cadb61b4f63833a8df55, 2020-05-07T16:19:54.327Z) OS version: Windows_NT x64 10.0.18363 Remote OS version: Linux arm64 4.9.140-tegra Remote OS version: Linux arm64 4.9.140-tegra
System Info
| Item | Value |
|---|---|
| CPUs | Intel® Core™ i7-8650U CPU @ 1.90GHz (8 x 2112) |
| GPU Status | 2d_canvas: enabled flash_3d: enabled flash_stage3d: enabled flash_stage3d_baseline: enabled gpu_compositing: enabled multiple_raster_threads: enabled_on oop_rasterization: disabled_off protected_video_decode: enabled rasterization: enabled skia_renderer: disabled_off_ok video_decode: enabled viz_display_compositor: enabled_on viz_hit_test_surface_layer: disabled_off_ok webgl: enabled webgl2: enabled |
| Load (avg) | undefined |
| Memory (System) | 15.93GB (7.08GB free) |
| Process Argv | |
| Screen Reader | no |
| VM | 0% |
| Item | Value |
|---|---|
| Remote | SSH: jetson |
| OS | Linux arm64 4.9.140-tegra |
| CPUs | unknown (6 x 345) |
| Memory (System) | 7.68GB (0.66GB free) |
| VM | 0% |
| Item | Value |
|---|---|
| Remote | Container taskmanager:latest (/taskmana… |
| OS | Linux arm64 4.9.140-tegra |
| CPUs | unknown (6 x 1420) |
| Memory (System) | 7.68GB (0.66GB free) |
| VM | 0% |
About this issue
- Original URL
- State: open
- Created 4 years ago
- Reactions: 7
- Comments: 17 (6 by maintainers)
Has there been any movement on this? I can’t get any of the suggestions or workarounds to work (VS Code Version: 1.80.2)