Python Unittest: тесты не обнаружены в коде Visual Studio - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь заставить работать автономную функцию модульных тестов Visual Studio Code. Недавно я внес изменение в структуру каталогов моего проекта Python, которая ранее была такой:

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

И моя установка на unittest была такой:

    "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

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Проблема заключалась в том, что я использовал относительный импорт в тестовом модуле (from ..utils import guards). Я просто изменил его на абсолютный импорт (from app.utils import guards), и все снова заработало.

0 голосов
/ 06 июля 2018

Активируйте свой virtualenv,

Перейдите в каталог myproject и запустите:

python -m unittest app/tests/

Это запустит тесты в app/tests/.

Для получения дополнительной информации следуйте документации .

EDIT:

Вам необходимо установить параметр cwd в корневой каталог вашего проекта (каталог myproject) и изменить unittestArgs на поиск тестов в app/tests.

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