You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
After switching to devcontainer (based on 3.10-bullseye python) can't go to test or run test #19857
Create devcontainer in existsing project based on python
Try to run or go to single test in testing extension inside devcontainer
Extension version: 2022.14.0
VS Code version: Code 1.71.2 (Universal) (74b1f979648cc44d385a2286793c226e611f59e7, 2022-09-14T21:05:37.721Z)
OS version: Darwin arm64 21.6.0
Modes:
Sandboxed: No
Remote OS version: Linux arm64 5.10.124-linuxkit
Hello! Yes we can look into this further, to start could you provide the python logs so I can see a few details there about what command vscode is running for you? It can be found under output with python selected. Additionally I do not think the second image uploaded correctly so I am unable to view that- if you could retry that would be great! Thanks!
Hello, this looks to be a bug in the test adapter and is likely related to the ongoing buggy behavior on pytest discovery and running in vscode. We are currently work on a rewrite of how pytest works in vscode and hope this rewrite will fix this and similar bugs. The main issue which will be working on is here: #17242, and progress will be updated on this issue. Thank you!
Ben Brandt (@bbrandt) the fix to buggy pytest behavior should solve it regardless of the existence of a dev container. Please monitor #17242 for progress on this overhaul.
I have just configured a devcontainer for my Python project and I am facing the same issue. During tests initialization, VS Code seems to be using local project files, not the ones inside the container workspace.
I am using another laptop today (also with Ubuntu) and on that laptop tests are loaded as expected and I am able to debug them. I suspect the issue may have something to do with file permissions, because working with devcontainer changes the owner of test files to root:root.
FYI I was able to resolve this by removing all __pycache__ directories and preventing them from being created by using the PYTHONDONTWRITEBYTECODE=1 environment variable.
When in a devcontainer, how does one turn off the new python test adapter? I am aware of python.experiments.optOutFrom": ["pythonTestAdapter"] but, putting that in the User settings.json file doesn't seem to work. In VSCode, the line of text gets lighter looking, indicating it doesn't apply. And, it seems to use the new test adapter anyway.
For those in this thread, what is the current status of testing in a dev container? With the experiment turned on does it continue to not work? Would love to get this working for this scenario so if possible could someone send along: a layout or minimal repro of your project and your logs from the python output channel? For your logs, can you first set your log level to trace via theDeveloper: set log level command in the command palette? With these, I can better help figure out what might be going wrong. Thanks”
With the experiment feature turned on, I am running into problems. But not because of the devcontainer. It's because of my custom conftest.py.
I am using pytest-xdist and have hooks for pytest_testnodedown, pytest_xdist_auto_num_workers, pytest_sessionfinish, and pytest_collection_finish.
We are trying to pass information from the worker nodes back to the master node, similar to what webpage does: https://korytkin.medium.com/how-to-get-data-from-pytest-xdist-nodes-2fbf2f0fe957. This does not work well with the experiment turned on, causing failures. I think the problem is a couple of things. The first is that VSCode is trying to run the tests in parallel itself, so I have no way to combine my data. The second is that something in the conftest isn't liked by the vscode extension. I can get back to you on this later, if you want that error.
hi tmaslach, thanks for getting back to me! Have you tried on the most recent release of stable? I made some changes recently to support using other plugins while also using the rewrite.
I used "python.experiments.optInto": ["All"] to activate everything and ran the tests, all ran fine and my log file contained all the collective data.
I did get the following error in the test results console:
================== 38 passed, 1 xpassed in 90.28s (0:15:50) ===================
PYTEST ERROR: TEST_UUID and/or TEST_PORT are not set at the time of pytest starting. Please confirm these environment variables are not being changed or removed as they are required for successful test discovery and execution.
TEST_UUID = 6cd21c52-0e4b-4122-b9a8-e75e3bfa2543
TEST_PORT = 37355
Not sure what this means, but want you to be aware. I assume this is coming from the pytest adapter.
to verify the error message is switched to conditional please set log level to trace then run pytest discovery and ensure you do not see PYTEST ERROR: TEST_UUID and/or TEST_PORT are not set at the time of pytest starting. in your python logs.
Activity
eleanorjboyd commentedon Sep 19, 2022
Hello! Yes we can look into this further, to start could you provide the python logs so I can see a few details there about what command vscode is running for you? It can be found under
outputwithpythonselected. Additionally I do not think the second image uploaded correctly so I am unable to view that- if you could retry that would be great! Thanks!meshchaninov commentedon Sep 20, 2022
Hello!
Python output:
Output command: /usr/local/bin/python ~/.vscode-server/extensions/ms-python.python-2022.14.0/pythonFiles/testing_tools/run_adapter.py discover pytest -- --rootdir . -s --cache-clear --no-cov tests
[ { "id": "./tests/test_views/test_tariff_view.py::test_get_payment_history__invoice_visible_in_history", "name": "test_get_payment_history__invoice_visible_in_history", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_tariff_view.py:440", "markers": [], "parentid": "./tests/test_views/test_tariff_view.py" }, { "id": "./tests/test_views/test_tariff_view.py::test_buy_tariff", "name": "test_buy_tariff", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_tariff_view.py:471", "markers": [], "parentid": "./tests/test_views/test_tariff_view.py" }, { "id": "./tests/test_views/test_utils_view.py::test_get_nationalities_view", "name": "test_get_nationalities_view", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_utils_view.py:14", "markers": [], "parentid": "./tests/test_views/test_utils_view.py" }, { "id": "./tests/test_views/test_utils_view.py::test_get_cities_view", "name": "test_get_cities_view", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_utils_view.py:40", "markers": [], "parentid": "./tests/test_views/test_utils_view.py" }, { "id": "./tests/test_views/test_utils_view.py::test_get_tariffs_view__no_user", "name": "test_get_tariffs_view__no_user", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_utils_view.py:68", "markers": [], "parentid": "./tests/test_views/test_utils_view.py" }, { "id": "./tests/test_views/test_utils_view.py::test_get_tariffs_view__upgrade_tariff", "name": "test_get_tariffs_view__upgrade_tariff", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_utils_view.py:105", "markers": [], "parentid": "./tests/test_views/test_utils_view.py" }, { "id": "./tests/test_views/test_utils_view.py::test_tariff_view__suspended_subscription", "name": "test_tariff_view__suspended_subscription", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_utils_view.py:169", "markers": [], "parentid": "./tests/test_views/test_utils_view.py" }, { "id": "./tests/test_views/test_vacancy_view.py::test_reopen_closed_vacancy", "name": "test_reopen_closed_vacancy", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_vacancy_view.py:16", "markers": [], "parentid": "./tests/test_views/test_vacancy_view.py" }, { "id": "./tests/test_views/test_vacancy_view.py::test_patch_vacancy_dont_show_salary_flag__enabled", "name": "test_patch_vacancy_dont_show_salary_flag__enabled", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_vacancy_view.py:52", "markers": [], "parentid": "./tests/test_views/test_vacancy_view.py" }, { "id": "./tests/test_views/test_vacancy_view.py::test_patch_vacancy_dont_show_salary_flag__disabled", "name": "test_patch_vacancy_dont_show_salary_flag__disabled", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_vacancy_view.py:98", "markers": [], "parentid": "./tests/test_views/test_vacancy_view.py" }, { "id": "./tests/test_views/test_admin/test_client/test_admin_client_view.py::test_get_all_clients_view", "name": "test_get_all_clients_view", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_admin/test_client/test_admin_client_view.py:31", "markers": [], "parentid": "./tests/test_views/test_admin/test_client/test_admin_client_view.py" }, { "id": "./tests/test_views/test_admin/test_client/test_admin_client_view.py::test_get_client_by_id", "name": "test_get_client_by_id", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_admin/test_client/test_admin_client_view.py:65", "markers": [], "parentid": "./tests/test_views/test_admin/test_client/test_admin_client_view.py" }, { "id": "./tests/test_views/test_admin/test_client/test_admin_client_view.py::test_get_client_info_view__notfound_client", "name": "test_get_client_info_view__notfound_client", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_admin/test_client/test_admin_client_view.py:104", "markers": [], "parentid": "./tests/test_views/test_admin/test_client/test_admin_client_view.py" }, { "id": "./tests/test_views/test_admin/test_client/test_admin_client_view.py::test_add_client_new_tariff", "name": "test_add_client_new_tariff", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_admin/test_client/test_admin_client_view.py:125", "markers": [], "parentid": "./tests/test_views/test_admin/test_client/test_admin_client_view.py" }, { "id": "./tests/test_views/test_admin/test_client/test_admin_client_view.py::test_add_client_new_tariff_overrides_existing", "name": "test_add_client_new_tariff_overrides_existing", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_admin/test_client/test_admin_client_view.py:177", "markers": [], "parentid": "./tests/test_views/test_admin/test_client/test_admin_client_view.py" }, { "id": "./tests/test_views/test_admin/test_client/test_admin_client_view.py::test_add_client_new_tariff__hide_from_payment_history_enabled", "name": "test_add_client_new_tariff__hide_from_payment_history_enabled", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_admin/test_client/test_admin_client_view.py:233", "markers": [], "parentid": "./tests/test_views/test_admin/test_client/test_admin_client_view.py" }, { "id": "./tests/test_views/test_admin/test_client/test_admin_client_view.py::test_add_client_new_tariff__not_found_client", "name": "test_add_client_new_tariff__not_found_client", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_admin/test_client/test_admin_client_view.py:277", "markers": [], "parentid": "./tests/test_views/test_admin/test_client/test_admin_client_view.py" }, { "id": "./tests/test_views/test_admin/test_client/test_admin_client_view.py::test_add_client_new_tariff__mobile_payment", "name": "test_add_client_new_tariff__mobile_payment", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_admin/test_client/test_admin_client_view.py:299", "markers": [], "parentid": "./tests/test_views/test_admin/test_client/test_admin_client_view.py" }, { "id": "./tests/test_views/test_admin/test_client/test_admin_client_view.py::test_apply_client_invitation_limit", "name": "test_apply_client_invitation_limit", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_admin/test_client/test_admin_client_view.py:333", "markers": [], "parentid": "./tests/test_views/test_admin/test_client/test_admin_client_view.py" }, { "id": "./tests/test_views/test_admin/test_client/test_admin_client_view.py::test_apply_client_invitation_limit__not_found_client", "name": "test_apply_client_invitation_limit__not_found_client", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_admin/test_client/test_admin_client_view.py:353", "markers": [], "parentid": "./tests/test_views/test_admin/test_client/test_admin_client_view.py" }, { "id": "./tests/test_views/test_admin/test_client/test_admin_client_view.py::test_get_client_payment_methods", "name": "test_get_client_payment_methods", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_admin/test_client/test_admin_client_view.py:377", "markers": [], "parentid": "./tests/test_views/test_admin/test_client/test_admin_client_view.py" }, { "id": "./tests/test_views/test_admin/test_client/test_admin_client_view.py::test_delete_client_payment_method", "name": "test_delete_client_payment_method", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_admin/test_client/test_admin_client_view.py:426", "markers": [], "parentid": "./tests/test_views/test_admin/test_client/test_admin_client_view.py" }, { "id": "./tests/test_views/test_admin/test_client/test_admin_client_view.py::test_delete_default_payment_method", "name": "test_delete_default_payment_method", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_admin/test_client/test_admin_client_view.py:451", "markers": [], "parentid": "./tests/test_views/test_admin/test_client/test_admin_client_view.py" }, { "id": "./tests/test_views/test_admin/test_client/test_admin_client_view.py::test_admin_cancel_client_subscription", "name": "test_admin_cancel_client_subscription", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_admin/test_client/test_admin_client_view.py:491", "markers": [], "parentid": "./tests/test_views/test_admin/test_client/test_admin_client_view.py" }, { "id": "./tests/test_views/test_admin/test_client/test_admin_client_view.py::test_admin_buy_limits_extends_invites_count", "name": "test_admin_buy_limits_extends_invites_count", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_admin/test_client/test_admin_client_view.py:520", "markers": [], "parentid": "./tests/test_views/test_admin/test_client/test_admin_client_view.py" }, { "id": "./tests/test_views/test_auth/test_auth_register_candidate_view.py::test_register_candidate_temp_user", "name": "test_register_candidate_temp_user", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_auth/test_auth_register_candidate_view.py:21", "markers": [], "parentid": "./tests/test_views/test_auth/test_auth_register_candidate_view.py" }, { "id": "./tests/test_views/test_auth/test_auth_register_candidate_view.py::test_register_candidate_email_step", "name": "test_register_candidate_email_step", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_auth/test_auth_register_candidate_view.py:35", "markers": [], "parentid": "./tests/test_views/test_auth/test_auth_register_candidate_view.py" }, { "id": "./tests/test_views/test_auth/test_auth_register_candidate_view.py::test_register_candidate_confirm_email_step", "name": "test_register_candidate_confirm_email_step", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_auth/test_auth_register_candidate_view.py:62", "markers": [], "parentid": "./tests/test_views/test_auth/test_auth_register_candidate_view.py" }, { "id": "./tests/test_views/test_auth/test_auth_register_candidate_view.py::test_register_candidate_confirm_email_step__invalid_code", "name": "test_register_candidate_confirm_email_step__invalid_code", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_auth/test_auth_register_candidate_view.py:88", "markers": [], "parentid": "./tests/test_views/test_auth/test_auth_register_candidate_view.py" }, { "id": "./tests/test_views/test_auth/test_auth_register_candidate_view.py::test_register_candidate_phone_step", "name": "test_register_candidate_phone_step", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_auth/test_auth_register_candidate_view.py:120", "markers": [], "parentid": "./tests/test_views/test_auth/test_auth_register_candidate_view.py" }, { "id": "./tests/test_views/test_auth/test_auth_register_candidate_view.py::test_register_candidate_confirm_phone_step", "name": "test_register_candidate_confirm_phone_step", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_auth/test_auth_register_candidate_view.py:150", "markers": [], "parentid": "./tests/test_views/test_auth/test_auth_register_candidate_view.py" }, { "id": "./tests/test_views/test_auth/test_auth_register_candidate_view.py::test_register_candidate_confirm_phone_step__invalid_code", "name": "test_register_candidate_confirm_phone_step__invalid_code", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_auth/test_auth_register_candidate_view.py:182", "markers": [], "parentid": "./tests/test_views/test_auth/test_auth_register_candidate_view.py" }, { "id": "./tests/test_views/test_auth/test_auth_register_candidate_view.py::test_register_candidate_sign_rights_and_obligations", "name": "test_register_candidate_sign_rights_and_obligations", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_auth/test_auth_register_candidate_view.py:221", "markers": [], "parentid": "./tests/test_views/test_auth/test_auth_register_candidate_view.py" }, { "id": "./tests/test_views/test_auth/test_auth_register_candidate_view.py::test_register_candidate_finish_register", "name": "test_register_candidate_finish_register", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_auth/test_auth_register_candidate_view.py:259", "markers": [], "parentid": "./tests/test_views/test_auth/test_auth_register_candidate_view.py" }, { "id": "./tests/test_views/test_auth/test_auth_register_candidate_view.py::test_register_candidate_finish_register__not_all_field_filled", "name": "test_register_candidate_finish_register__not_all_field_filled", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_auth/test_auth_register_candidate_view.py:301", "markers": [], "parentid": "./tests/test_views/test_auth/test_auth_register_candidate_view.py" }, { "id": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py::test_cv_video_interview_data", "name": "test_cv_video_interview_data", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py:11", "markers": [], "parentid": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py" }, { "id": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py::test_get_cv_video_interview__not_exist", "name": "test_get_cv_video_interview__not_exist", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py:39", "markers": [], "parentid": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py" }, { "id": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py::test_init_cv_video_interview__new", "name": "test_init_cv_video_interview__new", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py:54", "markers": [], "parentid": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py" }, { "id": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py::test_init_cv_video_interview__override", "name": "test_init_cv_video_interview__override", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py:78", "markers": [], "parentid": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py" }, { "id": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py::test_finish_cv_video_interview", "name": "test_finish_cv_video_interview", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py:107", "markers": [], "parentid": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py" }, { "id": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py::test_finish_cv_video_interview__not_found", "name": "test_finish_cv_video_interview__not_found", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py:140", "markers": [], "parentid": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py" }, { "id": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py::test_finish_cv_video_interview__override_exists", "name": "test_finish_cv_video_interview__override_exists", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py:159", "markers": [], "parentid": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_video.py" }, { "id": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_view.py::test_candidate_cv_view__get_candidate_cv", "name": "test_candidate_cv_view__get_candidate_cv", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_cv/test_candidate_cv_view.py:22", "markers": [], "parentid": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_view.py" }, { "id": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_view.py::test_candidate_cv_view__update_candidate_cv", "name": "test_candidate_cv_view__update_candidate_cv", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_cv/test_candidate_cv_view.py:146", "markers": [], "parentid": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_view.py" }, { "id": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_view.py::test_get_cv_visibility_status", "name": "test_get_cv_visibility_status", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_cv/test_candidate_cv_view.py:203", "markers": [], "parentid": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_view.py" }, { "id": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_view.py::test_change_cv_visibility_status", "name": "test_change_cv_visibility_status", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_cv/test_candidate_cv_view.py:229", "markers": [], "parentid": "./tests/test_views/test_candidate/test_cv/test_candidate_cv_view.py" }, { "id": "./tests/test_views/test_candidate/test_vacancy/test_candidate_accept_vacancy.py::test_candidate_accept__vacancy", "name": "test_candidate_accept__vacancy", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_vacancy/test_candidate_accept_vacancy.py:11", "markers": [], "parentid": "./tests/test_views/test_candidate/test_vacancy/test_candidate_accept_vacancy.py" }, { "id": "./tests/test_views/test_candidate/test_vacancy/test_candidate_vacancy_view.py::test_candidate_vacancy_view_get_all", "name": "test_candidate_vacancy_view_get_all", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_vacancy/test_candidate_vacancy_view.py:19", "markers": [], "parentid": "./tests/test_views/test_candidate/test_vacancy/test_candidate_vacancy_view.py" }, { "id": "./tests/test_views/test_candidate/test_vacancy/test_candidate_vacancy_view.py::test_candidate_vacancy_view_get_all__accepted_invite", "name": "test_candidate_vacancy_view_get_all__accepted_invite", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_vacancy/test_candidate_vacancy_view.py:76", "markers": [], "parentid": "./tests/test_views/test_candidate/test_vacancy/test_candidate_vacancy_view.py" }, { "id": "./tests/test_views/test_candidate/test_vacancy/test_candidate_vacancy_view.py::test_candidate_vacancy_view_get_all__closed_vacancy", "name": "test_candidate_vacancy_view_get_all__closed_vacancy", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_vacancy/test_candidate_vacancy_view.py:138", "markers": [], "parentid": "./tests/test_views/test_candidate/test_vacancy/test_candidate_vacancy_view.py" }, { "id": "./tests/test_views/test_candidate/test_vacancy/test_candidate_view.py::test_get_vacancy_response__hide_salary_flag__returns_expected[False-1000-1200-per_year-usd]", "name": "False-1000-1200-per_year-usd", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_vacancy/test_candidate_view.py:31", "markers": [], "parentid": "./tests/test_views/test_candidate/test_vacancy/test_candidate_view.py::test_get_vacancy_response__hide_salary_flag__returns_expected" }, { "id": "./tests/test_views/test_candidate/test_vacancy/test_candidate_view.py::test_get_vacancy_response__hide_salary_flag__returns_expected[True-None-None-None-None]", "name": "True-None-None-None-None", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_vacancy/test_candidate_view.py:31", "markers": [], "parentid": "./tests/test_views/test_candidate/test_vacancy/test_candidate_view.py::test_get_vacancy_response__hide_salary_flag__returns_expected" }, { "id": "./tests/test_views/test_candidate/test_vacancy/test_candidate_view.py::test_candidate_vacancy_new_chat_status_new", "name": "test_candidate_vacancy_new_chat_status_new", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_vacancy/test_candidate_view.py:91", "markers": [], "parentid": "./tests/test_views/test_candidate/test_vacancy/test_candidate_view.py" }, { "id": "./tests/test_views/test_candidate/test_vacancy/test_candidate_view.py::test_candidate_vacancy_closed__chat_status_not_available", "name": "test_candidate_vacancy_closed__chat_status_not_available", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_vacancy/test_candidate_view.py:131", "markers": [], "parentid": "./tests/test_views/test_candidate/test_vacancy/test_candidate_view.py" }, { "id": "./tests/test_views/test_candidate/test_vacancy/test_candidate_view.py::test_candidate_vacancy_closed_has_messages__chat_status_read_only", "name": "test_candidate_vacancy_closed_has_messages__chat_status_read_only", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_vacancy/test_candidate_view.py:172", "markers": [], "parentid": "./tests/test_views/test_candidate/test_vacancy/test_candidate_view.py" }, { "id": "./tests/test_views/test_candidate/test_vacancy/test_candidate_view.py::test_candidate_vacancy_active_has_messages__chat_status_continue", "name": "test_candidate_vacancy_active_has_messages__chat_status_continue", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_candidate/test_vacancy/test_candidate_view.py:220", "markers": [], "parentid": "./tests/test_views/test_candidate/test_vacancy/test_candidate_view.py" }, { "id": "./tests/test_views/test_user/test_candidate/test_response_builder.py::test_get_candidate_short_response", "name": "test_get_candidate_short_response", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_user/test_candidate/test_response_builder.py:8", "markers": [], "parentid": "./tests/test_views/test_user/test_candidate/test_response_builder.py" }, { "id": "./tests/test_views/test_user/test_candidate/test_response_builder.py::test_get_candidate_short_response_cv_file", "name": "test_get_candidate_short_response_cv_file", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_user/test_candidate/test_response_builder.py:31", "markers": [], "parentid": "./tests/test_views/test_user/test_candidate/test_response_builder.py" }, { "id": "./tests/test_views/test_user/test_classified/test_classified_favorites_view.py::test_add_candidate_to_favorites", "name": "test_add_candidate_to_favorites", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_user/test_classified/test_classified_favorites_view.py:13", "markers": [], "parentid": "./tests/test_views/test_user/test_classified/test_classified_favorites_view.py" }, { "id": "./tests/test_views/test_user/test_classified/test_classified_favorites_view.py::test_add_candidate_to_favorites__already_exist__error", "name": "test_add_candidate_to_favorites__already_exist__error", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_user/test_classified/test_classified_favorites_view.py:38", "markers": [], "parentid": "./tests/test_views/test_user/test_classified/test_classified_favorites_view.py" }, { "id": "./tests/test_views/test_user/test_classified/test_classified_favorites_view.py::test_remove_from_favorites", "name": "test_remove_from_favorites", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_user/test_classified/test_classified_favorites_view.py:68", "markers": [], "parentid": "./tests/test_views/test_user/test_classified/test_classified_favorites_view.py" }, { "id": "./tests/test_views/test_user/test_classified/test_classified_favorites_view.py::test_remove_from_favorites__not_found__error", "name": "test_remove_from_favorites__not_found__error", "source": "./../Users/user/Desktop/PROJECT/project-backend/tests/test_views/test_user/test_classified/test_classified_favorites_view.py:85", "markers": [], "parentid": "./tests/test_views/test_user/test_classified/test_classified_favorites_view.py" } ] } ]eleanorjboyd commentedon Sep 20, 2022
Hello, this looks to be a bug in the test adapter and is likely related to the ongoing buggy behavior on pytest discovery and running in vscode. We are currently work on a rewrite of how pytest works in vscode and hope this rewrite will fix this and similar bugs. The main issue which will be working on is here: #17242, and progress will be updated on this issue. Thank you!
bbrandt commentedon Oct 7, 2022
This is broken for me not just in a devcontainer but also if run in WSL2 outside of a devcontainer.
eleanorjboyd commentedon Oct 10, 2022
Ben Brandt (@bbrandt) the fix to buggy pytest behavior should solve it regardless of the existence of a dev container. Please monitor #17242 for progress on this overhaul.
chopeen commentedon Mar 28, 2023
I have just configured a devcontainer for my Python project and I am facing the same issue. During tests initialization, VS Code seems to be using local project files, not the ones inside the container workspace.
Nikita Meshchaninov (@meshchaninov) Have you managed to get it working on you machine?
I am using another laptop today (also with Ubuntu) and on that laptop tests are loaded as expected and I am able to debug them. I suspect the issue may have something to do with file permissions, because working with devcontainer changes the owner of test files to
root:root.m-roberts commentedon Apr 24, 2023
FYI I was able to resolve this by removing all
__pycache__directories and preventing them from being created by using thePYTHONDONTWRITEBYTECODE=1environment variable.tmaslach commentedon Oct 25, 2023
When in a devcontainer, how does one turn off the new python test adapter? I am aware of
python.experiments.optOutFrom": ["pythonTestAdapter"]but, putting that in the User settings.json file doesn't seem to work. In VSCode, the line of text gets lighter looking, indicating it doesn't apply. And, it seems to use the new test adapter anyway.eleanorjboyd commentedon Oct 30, 2023
Sandeep Somavarapu (@sandy081), any idea why this setting might not be carrying over to their remote setup?
sandy081 commentedon Oct 31, 2023
Because it is configured to be
machinescopedeleanorjboyd commentedon Oct 31, 2023
you need to put it in the settings for the dev container instead of the user settings- sorry if I said that incorrectly.
eleanorjboyd commentedon Nov 3, 2023
For those in this thread, what is the current status of testing in a dev container? With the experiment turned on does it continue to not work? Would love to get this working for this scenario so if possible could someone send along: a layout or minimal repro of your project and your logs from the
pythonoutput channel? For your logs, can you first set your log level totracevia theDeveloper: set log levelcommand in the command palette? With these, I can better help figure out what might be going wrong. Thanks”tmaslach commentedon Nov 6, 2023
Hi Eleanor Boyd (@eleanorjboyd) - Thanks for the pointer to use devcontainer.json - that worked!
With the experiment feature turned on, I am running into problems. But not because of the devcontainer. It's because of my custom conftest.py.
I am using pytest-xdist and have hooks for pytest_testnodedown, pytest_xdist_auto_num_workers, pytest_sessionfinish, and pytest_collection_finish.
We are trying to pass information from the worker nodes back to the master node, similar to what webpage does: https://korytkin.medium.com/how-to-get-data-from-pytest-xdist-nodes-2fbf2f0fe957. This does not work well with the experiment turned on, causing failures. I think the problem is a couple of things. The first is that VSCode is trying to run the tests in parallel itself, so I have no way to combine my data. The second is that something in the conftest isn't liked by the vscode extension. I can get back to you on this later, if you want that error.
eleanorjboyd commentedon Nov 6, 2023
hi tmaslach, thanks for getting back to me! Have you tried on the most recent release of stable? I made some changes recently to support using other plugins while also using the rewrite.
tmaslach commentedon Nov 7, 2023
Eleanor Boyd (@eleanorjboyd) - wow, it works now!
I used
"python.experiments.optInto": ["All"]to activate everything and ran the tests, all ran fine and my log file contained all the collective data.I did get the following error in the test results console:
Not sure what this means, but want you to be aware. I assume this is coming from the pytest adapter.
eleanorjboyd commentedon Nov 27, 2023
glad that worked! Thank you for the FYI on the error message, seems I am returning it in a place which isn't correct so Ill get a PR in to fix that
switch to conditional error message on check for UUID and port during…
eleanorjboyd commentedon Nov 27, 2023
to verify the error message is switched to conditional please set log level to trace then run pytest discovery and ensure you do not see
PYTEST ERROR: TEST_UUID and/or TEST_PORT are not set at the time of pytest starting.in your python logs.Merged PR posit-dev/positron-python#277: Merge vscode-python 2023.22 …
Merged PR posit-dev/positron-python#277: Merge vscode-python 2023.22 …