私はVSコードでPiltestセットアップを持っていますが、コマンドラインからPITESTを実行していてもテストのどれも見つからない。
(私は、MinicondaとA Django 3.6.6 Virtual Envを使用してWin10上のPythonアプリを開発しています。VSコードは完全に更新され、PythonとChromeのデバッガがあります。 ]拡張機能がインストールされています)
Pytest.ini:
_[pytest]
Django_SETTINGS_MODULE = callsign.settings
python_files = tests.py test_*.py *_tests.py
_
vSコードワークスペース設定:
_{
"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"]
}
}
_
最後に、Pythonの[<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コードを取得するための手順がありますか?
[〜#〜]編集[〜#〜]:読んだ後のPytest 4.0.1にダウングレードしました 問題3911 テスト発見は今機能しています。
私も。 .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
という最上位サブディレクトリにあります。実行pytest
手動で機能します。
2020年の誰かがこれに渡って来るなら、 この問題vscode-python
Repoは私の人生を保存しました。基本的に、次のようにしてください。
Python
拡張子をアンインストールします~/.vscode
フォルダからの拡張子を含むファイルを削除します(ms-python.python-[YEAR].[MONTH].[VERSION]
)。魅力のように働いた。
Vscodeがテストの検出に失敗した場合、チェックするもう1つのことは、 Coverage モジュールが有効になっているため、そうしないことを確認することです。私の場合には、テストケースは正しく発見されていましたが、説明されているように、テスト対象が低いために最終的には失敗し続けました こちら 。だからまず、テストが実際にpytest
によって実際に収集されたことを確認してください こちら :
pytest --collect-only
_
それからあなたがカバレッジチェックを強制していないことを確認してください(例えば、setup.cfg
)_).
addopts= --cov <path> -ra
_
My Pythonプラグインとテストエクスプローラは大丈夫です。
私の場合、test_.py
なしでクラスを命名しました。つまり、"test_"
では"tests_"
で始まらずにテストファイルをネーミングすることで、エクスプローラが問題を表示しないようにします。 ex:test_.py
は機能しますが、tests_.py
、12345abcde.py
は機能しません。