Skip to content

Spawn for running test discovery is not following symlinks properly. #9347

Description

@JacekPliszka

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:

  1. 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
}
  1. run:

code .

  1. 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

Activity

  1. added
    triage-neededNeeds assignment to the proper sub-team
    bugIssue identified by VS Code Team member as probable bug
    on Dec 31, 2019
  2. ghost removed
    triage-neededNeeds assignment to the proper sub-team
    on Dec 31, 2019
  3. ericsnowcurrently commented on Dec 31, 2019

    @ericsnowcurrently

    Thanks for letting us know about this, JacekPliszka. We'll take a look as soon as we can.

  4. toddljones commented on Jan 2, 2020

    @toddljones

    +1. I am having the same issue. Although, intermittently, I am able to reload window then 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 path test is not included and the test execution fails. See issue #9349

  5. ericsnowcurrently commented on Jan 8, 2020

    @ericsnowcurrently

    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 displayDiscoverStatus reference in the log output you included helps narrow down where the error is originating.

  6. JacekPliszka commented on Jan 8, 2020

    @JacekPliszka
    Author

    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.

  7. ericsnowcurrently commented on Jan 8, 2020

    @ericsnowcurrently

    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)?

  8. JacekPliszka commented on Jan 8, 2020

    @JacekPliszka
    Author

    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.

  9. ericsnowcurrently commented on Jan 8, 2020

    @ericsnowcurrently

    Understood. I'll try to narrow down the possible problematic code (based on displayDiscoverStatus) as soon as I can.

  10. 41 remaining items

  11. eleanorjboyd commented on Aug 18, 2023

    @eleanorjboyd
    Member

    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?

  12. eleanorjboyd commented on Sep 25, 2023

    @eleanorjboyd
    Member

    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!

  13. locked as resolved and limited conversation to collaborators on Oct 27, 2023
  14. eleanorjboyd commented on Dec 18, 2023

    @eleanorjboyd
    Member

    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

  15. eleanorjboyd commented on Feb 26, 2024

    @eleanorjboyd
    Member

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area-testingbugIssue identified by VS Code Team member as probable bug

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions