Repository navigation
Spawn for running test discovery is not following symlinks properly. #9347
Copy link
Copy link
Closed
Labels
area-testingbugIssue identified by VS Code Team member as probable bugIssue identified by VS Code Team member as probable bug
Description
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 How to update the language server to the latest stable version #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
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area-testingbugIssue identified by VS Code Team member as probable bugIssue identified by VS Code Team member as probable bug
Activity
ericsnowcurrently commentedon Dec 31, 2019
Thanks for letting us know about this, JacekPliszka. We'll take a look as soon as we can.
toddljones commentedon Jan 2, 2020
+1. I am having the same issue. Although, intermittently, I am able to
reload windowthen the test discovery starts working. But, even then, when I run the tests it fails out because it can't find the test file. For some reason the relative pathtestis not included and the test execution fails. See issue #9349ericsnowcurrently commentedon Jan 8, 2020
JacekPliszka, I wasn't able to reproduce the problem. Using the simple example you provided, the extension was able to discover the test without problem. Is it happening every time for you?
Since running the command manually worked for you, we know that the problem isn't related to the output of the command. There is something wrong in the extension (at least your install, if not the extension itself). However, it will be hard to determine the cause until we can reliably reproduce the problem.
FWIW, the
displayDiscoverStatusreference in the log output you included helps narrow down where the error is originating.JacekPliszka commentedon Jan 8, 2020
Yes. Happens every time. With any project. This is my first install and the first time I use vscode for anything.
I do not know Javascript so I do not know how to debug it.
What would be useful is better error message/issue detection. Something is undefined but should not be but what and why - I've no idea.
ericsnowcurrently commentedon Jan 8, 2020
Yeah, I agree that the error message is unhelpful. Sorry about that. Would you mind trying the latest version of the extension (released just yesterday)?
JacekPliszka commentedon Jan 8, 2020
updated - no change.
I believe I have something missing in setup and the extension is not detecting it and not telling me and I do not know what to do.
ericsnowcurrently commentedon Jan 8, 2020
Understood. I'll try to narrow down the possible problematic code (based on
displayDiscoverStatus) as soon as I can.41 remaining items
eleanorjboyd commentedon Aug 18, 2023
repost from #21373, trying to consolidate discussion of testing with symlinks there.
my msg:
Hi! Looking to fix this but having trouble getting a minimal repro that produces the error. I have tried to replicate it via symlinks on a single disk (but it works) so I think it might only occur when you have symlinks across two different disks. Is that how everyone's setup is?
eleanorjboyd commentedon Sep 25, 2023
Closing this issue since it has been a month and I haven't gotten any response to my above post regarding a minimal repro. Please comment if you are still seeing this and have a repo I can debug with and Ill reopen the issue. Thanks!
eleanorjboyd commentedon Dec 18, 2023
Hello! I was able to figure out a repo and a solution. I have put together a detailed problem report and proposed solution for symlinks. Please check it out here and contribute any thoughts you may have: #22658
eleanorjboyd commentedon Feb 26, 2024
Hello! This bug should be fixed and on vscode insiders! The release to vscode stable will be out by the end of the week. Please let me know if you try it on insiders or stable when it comes out and still doesn't work and I can investigate your specific issue further.