web-dev-qa-db-ja.com

Python Unittest:Visual Studio Codeでテストが見つかりませんでした

私は、Visual Studio Code単体テストの自動実行 feature を機能させようとしています。私は最近Pythonプロジェクトのディレクトリ構造を以前は次のように変更しました:

myproje\
    domain\
        __init__.py
    repositories\
    tests\
        __init__.py
        guardstest.py
    utils\
        __init__.py
        guards.py
    web\

そして、単体テストのための私のセットアップは次のようでした:

    "python.unitTest.unittestArgs": [
    "-v",
    "-s",
    "tests",
    "-p",
    "*test*.py"
]

変更後のプロジェクトの構造は次のとおりです。

myprojet\
    app\
        controllers\
            __init__.py
        models\
            __init__.py
            entities.py
            enums.py
        tests\
            res\
                image1.png
                image2.png
            __init__.py
            guardstest.py
        utils\
            __init__.py
            guards.py
        views\
            static\
            templnates\
        __init__.py         
    uml\

その後、拡張機能は私のテストをもう検出しません。 '-s'パラメータを"./app/tests"".tests""./tests""app/tests""/app/tests""app.tests"に変更しようとしましたが、失敗しました。

enter image description here

4
Matheus Saraiva

問題は、テストモジュール(from ..utils import guards)。絶対インポート(from app.utils import guards)そしてそれはすべて再び機能しました。

2
Matheus Saraiva

Virtualenvをアクティブ化します。

myprojectディレクトリに移動して実行します。

python -m unittest app/tests/

これにより、app/tests/でテストが実行されます。

詳細は documentation を参照してください。

編集:

cwdパラメータをプロジェクトのルート(myprojectディレクトリ)に設定し、unittestArgsを変更する必要がありますapp/testsでテストを検索します。

{
 "python.unitTest.cwd": "path/to/myproject",
 "python.unitTest.unittestArgs": [
    "-v",
    "-s", "app/tests",
    "-p", "*test*.py"]
}
0
Laurent LAPORTE