vscode-python: Spawn for running test discovery is not following symlinks properly.
Environment data
- VS Code version: 1.41.1 26076a4de974ead31f97692a0d32f90d735645c0
- Extension version (available under the Extensions sidebar): 2019.11.50794
- OS and version: Fedora Linux 31
- Python version (& distribution if applicable, e.g. Anaconda): 3.7.5
- Type of virtual environment used (N/A | venv | virtualenv | conda | …): N/A
- Relevant/affected Python packages and their versions: Python 3.7.5, pytest-4.6.7, py-1.8.0, pluggy-0.12.0
- Jedi or Language Server? (i.e. what is
"python.jediEnabled"
set to; more info #3977): “python.jediEnabled”: true
Expected behaviour
tests are detected
Actual behaviour
tests are not detected, error is issues, running the adapter returns:
$ python /home/jp/.vscode/extensions/ms-python.python-2019.11.50794/pythonFiles/testing_tools/run_adapter.py discover pytest -- --rootdir /home/jp/py/vscode -s --cache-clear
[{"rootid": ".", "root": "/home/jp/py/vscode", "parents": [{"id": "./test_simple.py", "kind": "file", "name": "test_simple.py", "parentid": ".", "relpath": "./test_simple.py"}], "tests": [{"id": "./test_simple.py::test_simple", "name": "test_simple", "source": "./test_simple.py:1", "markers": [], "parentid": "./test_simple.py"}]}]
Steps to reproduce:
- Create minimal repo with:
$ cat test_simple.py
def test_simple():
assert 2 + 2 == 4
$ cat .vscode/settings.json
{
"python.testing.unittestEnabled": false,
"python.testing.nosetestsEnabled": false,
"python.testing.pytestEnabled": true
}
- run:
code .
- open test_simple.py and click Discover Tests
Logs
python /home/jp/.vscode/extensions/ms-python.python-2019.11.50794/pythonFiles/testing_tools/run_adapter.py discover pytest -- --rootdir /home/jp/py/vscode -s --cache-clear
Test Discovery failed:
TypeError: Cannot read property 'uri' of undefined
Output from Console
under the Developer Tools
panel (toggle Developer Tools on under Help
; turn on source maps to make any tracebacks be useful by running Enable source map support for extension debugging
)
console.ts:137 [Extension Host] Info Python Extension: 2019-12-31 20:05:49: Cached data exists ActivatedEnvironmentVariables, /home/jp/py/vscode
console.ts:137 [Extension Host] Info Python Extension: 2019-12-31 20:05:49: getActivatedEnvironmentVariables, Class name = b, completed in 1ms, Arg 1: <Uri:/home/jp/py/vscode>, Arg 2: undefined, Arg 3: false
console.ts:137 [Extension Host] Info Python Extension: 2019-12-31 20:05:49: Cached data exists getEnvironmentVariables, /home/jp/py/vscode
console.ts:137 [Extension Host] Info Python Extension: 2019-12-31 20:05:49: > /usr/bin/python ~/.vscode/extensions/ms-python.python-2019.11.50794/pythonFiles/testing_tools/run_adapter.py discover pytest -- --rootdir ~/py/vscode -s --cache-clear
console.ts:137 [Extension Host] Info Python Extension: 2019-12-31 20:05:49: cwd: ~/python-etl/base-code
console.ts:137 [Extension Host] Info Python Extension: 2019-12-31 20:05:49: > /usr/bin/python ~/.vscode/extensions/ms-python.python-2019.11.50794/pythonFiles/testing_tools/run_adapter.py discover pytest -- --rootdir ~/py/vscode -s --cache-clear
console.ts:137 [Extension Host] Info Python Extension: 2019-12-31 20:05:49: cwd: ~/python-etl/base-code
notificationsAlerts.ts:40 Test discovery error, please check the configuration settings for the tests.
onDidNotificationChange @ notificationsAlerts.ts:40
(anonymous) @ notificationsAlerts.ts:26
fire @ event.ts:581
addNotification @ notifications.ts:171
notify @ notificationService.ts:101
(anonymous) @ mainThreadMessageService.ts:83
_showMessage @ mainThreadMessageService.ts:44
$showMessage @ mainThreadMessageService.ts:38
_doInvokeHandler @ rpcProtocol.ts:398
_invokeHandler @ rpcProtocol.ts:383
_receiveRequest @ rpcProtocol.ts:299
_receiveOneMessage @ rpcProtocol.ts:226
(anonymous) @ rpcProtocol.ts:101
fire @ event.ts:581
fire @ ipc.net.ts:453
_receiveMessage @ ipc.net.ts:733
(anonymous) @ ipc.net.ts:592
fire @ event.ts:581
acceptChunk @ ipc.net.ts:239
(anonymous) @ ipc.net.ts:200
t @ ipc.net.ts:28
emit @ events.js:200
addChunk @ _stream_readable.js:294
readableAddChunk @ _stream_readable.js:275
Readable.push @ _stream_readable.js:210
onStreamRead @ internal/stream_base_commons.js:166
console.ts:137 [Extension Host] Error Python Extension: 2019-12-31 20:05:50: Python Extension: displayDiscoverStatus [TypeError: Cannot read property 'uri' of undefined at /home/jp/.vscode/extensions/ms-python.python-2019.11.50794/out/client/extension.js:1:475432]
t.log @ console.ts:137
$logExtensionHostMessage @ mainThreadConsole.ts:39
_doInvokeHandler @ rpcProtocol.ts:398
_invokeHandler @ rpcProtocol.ts:383
_receiveRequest @ rpcProtocol.ts:299
_receiveOneMessage @ rpcProtocol.ts:226
(anonymous) @ rpcProtocol.ts:101
fire @ event.ts:581
fire @ ipc.net.ts:453
_receiveMessage @ ipc.net.ts:733
(anonymous) @ ipc.net.ts:592
fire @ event.ts:581
acceptChunk @ ipc.net.ts:239
(anonymous) @ ipc.net.ts:200
t @ ipc.net.ts:28
emit @ events.js:200
addChunk @ _stream_readable.js:294
readableAddChunk @ _stream_readable.js:275
Readable.push @ _stream_readable.js:210
onStreamRead @ internal/stream_base_commons.js:166
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Reactions: 2
- Comments: 33 (18 by maintainers)
It turns out that the problem for me was on how the workspace was opened. When using:
code ~\path\my.code-workspace
it is not working, whilecode c:\Users\user\path\my.code-workspace
than it’s workingThis is because the final command created by the extension will give the workspace path to the discovery agent inside simple quotes and thus special characters won’t work anymore. Hope this can help.