[英]unittest assertionError in python AssertionError: <Response [200]> != 200
[英]VS Code Python unittest AssertionError: Path must be within the project or Importerror
因此,我再次在 VS Code 中遇到了 python unittest 的問題。 我的目錄結構如下:
workdir
__init__.py
- package
__init__.py
- submoduleA
__init__.py
- submoduleB
__init__.py
...
- tests
__init__.py
test_A.py
test_B.py
...
所以基本上,我的 package 在我的工作目錄中,有一堆子模塊和一個測試文件夾。 一切都有一個__init__.py
文件,當我將它導入腳本並運行它時,它運行良好。
直到今天早上,我的 settings.json 如下,一切正常:
"python.testing.unittestArgs": [
"-v",
"-s",
".",
"-p",
"test_*.py"
],
現在它說:
[ERROR 2022-7-8 11:38:54.740]: Error discovering unittest tests:
Traceback (most recent call last):
File "/home/fratajcz/.vscode-server/extensions/ms-python.python-2022.12.0/pythonFiles/testing_tools/unittest_discovery.py", line 42, in <module>
suite = loader.discover(start_dir, pattern=pattern, top_level_dir=top_level_dir)
File "/home/icb/fratajcz/anaconda3/envs/compat/lib/python3.7/unittest/loader.py", line 349, in discover
tests = list(self._find_tests(start_dir, pattern))
File "/home/fratajcz/anaconda3/envs/compat/lib/python3.7/unittest/loader.py", line 387, in _find_tests
name = self._get_name_from_path(start_dir)
File "/home/fratajcz/anaconda3/envs/compat/lib/python3.7/unittest/loader.py", line 371, in _get_name_from_path
assert not _relpath.startswith('..'), "Path must be within the project"
AssertionError: Path must be within the project
Traceback (most recent call last):
File "/home/fratajcz/.vscode-server/extensions/ms-python.python-2022.12.0/pythonFiles/get_output_via_markers.py", line 26, in <module>
所以現在,甚至.
不在項目中了嗎? VS Code 在這里談論的這個不祥的項目是什么?
如果我將 settings.json 更明確地設置為:
"python.testing.unittestArgs": [
"-v",
"-s",
"workdir/package/tests",
"-t",
"workdir/package/",
"-p",
"test_*.py"
],
它告訴我:
[ERROR 2022-7-8 11:49:33.496]: Error discovering unittest tests:
Traceback (most recent call last):
File "/home/fratajcz/.vscode-server/extensions/ms-python.python-2022.12.0/pythonFiles/testing_tools/unittest_discovery.py", line 42, in <module>
suite = loader.discover(start_dir, pattern=pattern, top_level_dir=top_level_dir)
File "/home/fratajcz/anaconda3/envs/compat/lib/python3.7/unittest/loader.py", line 346, in discover
raise ImportError('Start directory is not importable: %r' % start_dir)
ImportError: Start directory is not importable: 'workdir/package/tests'
如果我只是從終端使用相同的參數運行 unittest 測試發現,它運行順利。
我只是不知道了,這是另一個來自 VS Code 的諷刺笑話嗎?
謝謝你的幫助!
如果有人在 VS Code 中對單元測試有同樣令人沮喪的經歷,只需切換到 pytest 即可解決問題。 我現在可以使用的設置(基本相同,但在 pytest 語法中):
"python.testing.pytestArgs": [
"package/tests/",
"-v",
"-k",
"test_",
"--collect-only"
],
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.