我在vs代码中设置了PyTest,但是即使从命令行运行pytest都可以,但是找不到任何测试。
(我正在使用MiniConda和Python 3.6.6虚拟环境在Win10上开发Django应用。VS Code已完全更新,并且我安装了适用于Chrome扩展程序的Python和调试器)
Pytest.ini:
[pytest]
DJANGO_SETTINGS_MODULE = callsign.settings
python_files = tests.py test_*.py *_tests.py
vs-code工作区设置:
{
"folders": [
{
"path": "."
}
],
"settings": {
"python.pythonPath": "C:\\ProgramData\\Miniconda3\\envs\\callsign\\python.exe",
"python.unitTest.unittestEnabled": false,
"python.unitTest.nosetestsEnabled": false,
"python.unitTest.pyTestEnabled": true,
"python.unitTest.pyTestArgs": ["--rootdir=.\\callsign", "--verbose"]
}
}
最后,VS代码中Python测试日志的输出:
============================= test session starts =============================
platform win32 -- Python 3.6.6, pytest-4.1.1, py-1.7.0, pluggy-0.8.1
Django settings: callsign.settings (from ini file)
rootdir: c:\Users\benhe\Projects\CallsignCopilot\callsign, inifile: pytest.ini
plugins: django-3.4.5
collected 23 items
<Package c:\Users\benhe\Projects\CallsignCopilot\callsign\transcription>
<Module test_utils.py>
<Function test_n_digits>
<Function test_n_alpha>
<Function test_n_hex>
<Function test_n_digits_in_range>
<Function test_v1_audiofilename>
<Function test_v2_audiofilename>
<Function test_v1_bad_int_filename>
<Function test_v1_bad_non_int_filename>
<Function test_bad_format>
<Function test_no_format>
<Function test_too_many_segments>
<Function test_too_few_segments>
<Function test_good_v2_filename>
<Function test_bad_year_v2_filename>
<Function test_bad_month_v2_filename>
<Function test_bad_day_v2_filename>
<Function test_bad_date_v2_filename>
<Function test_bad_short_serial_v2_filename>
<Function test_bad_long_serial_v2_filename>
<Function test_good_v3_filename>
<Function test_good_lowercase_block_v3_filename>
<Function test_bad_non_alpha_block_v3_filename>
<Function test_real_filenames>
======================== no tests ran in 1.12 seconds =========================
我是否缺少获取vs代码查找测试的任何步骤?
答案 0 :(得分:2)
如果有人在2020年遇到这个问题,vscode-python
回购中的this issue挽救了我的性命。基本上,只需执行以下操作:
Python
扩展名~/.vscode
文件夹中删除包含扩展名的文件(看起来像ms-python.python-[YEAR].[MONTH].[VERSION]
)像魅力一样工作。
答案 1 :(得分:1)
编辑:阅读issue 3911后,我降级为Pytest 4.0.1,并且“测试发现”现在可以正常工作。
我也是。当我吹散esModuleInterop
并重新运行.pytest_cache
时,我看到刚生成的Python: Discover Unit Tests
包含了所有测试,但是我仍然收到对话框抱怨.pytest_cache/v/cache/nodeids
。
No tests discovered
:
.vscode/settings.json
测试位于名为{
"python.linting.enabled": false,
"python.unitTest.unittestEnabled": false,
"python.unitTest.nosetestsEnabled": false,
"python.unitTest.pyTestEnabled": true,
"python.pythonPath": "venv3/bin/python"
}
的顶级子目录中。手动运行test
即可。
答案 2 :(得分:1)
我的Python插件和Test Explorer运行正常。
在我的情况下,命名没有test_.py
的类是个问题。换句话说,在不以"test_"
而不是"tests_"
开头的情况下命名测试文件就可以了,因此资源管理器不会看到问题。例如:test_.py
有效,但是tests_.py
,12345abcde.py
不起作用。
答案 3 :(得分:1)