因此,在VS代码中,我再次遇到了的问题。我的目录结构如下:
workdir
__init__.py
- package
__init__.py
- submoduleA
__init__.py
- submoduleB
__init__.py
...
- tests
__init__.py
test_A.py
test_B.py
...因此,基本上,我的包在我的工作中,有一堆子模块和一个测试文件夹。所有东西都有一个__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代码在这里谈论的这个不祥的项目是什么?
如果我更明确地将我的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'如果我用同样的论证从终端运行最单一的测试发现,它就会顺利运行。
我只是不知道了,这是VS Code的又一个讽刺笑话吗?
谢谢你的帮助!
发布于 2022-08-09 12:37:23
如果有人对VS代码中的unittest有着相当令人沮丧的体验,那么只需切换到pytest就可以解决这个问题。我现在使用的设置(基本上相同,但在pytest语法中):
"python.testing.pytestArgs": [
"package/tests/",
"-v",
"-k",
"test_"
],https://stackoverflow.com/questions/73275983
复制相似问题