Обнаружение теста завершается неудачно с использованием DRF APITestCase, но не TestCase django - PullRequest
0 голосов
/ 24 февраля 2020

Используя Django класс * Rest Framework APITestCase Rest Framework, код Visual Studio не обнаруживает мои unittest тесты. Я настроил vscode для использования unittest и дал ему путь к моему django приложению. Я переключился между джедаем и языковым сервером ms для python.

. Я могу запустить тесты вручную, используя python manage.py test.

Если я переключусь на использование Django, предоставленного django.test.TestCase, vscode обнаруживает тесты и создает украшения. Я также попробовал два других тестовых примера rest_framework: APISimpleTestCase, APITransactionTestCase и ни один из них не работал.

Мой тестовый класс очень прост, по сути, следующее:

from django.test import TestCase

# * cannot get vscode to discover tests with this
from rest_framework.test import APITestCase

service_path = "/api/v0.1/service"


# class PathLookupTests(TestCase):
class PathLookupTests(APISimpleTestCase):
    def test_responding(self):
        uri = "valid_uri"

        resp = self.client.get(f"{service_path}/?uri={uri}")
        self.assertEqual(resp.status_code, 200)

В Python Test Log я видел следующий след, но не могу повторить:

  File "/Users/bfalk/miniconda3/envs/web-server-eval/lib/python3.8/site-packages/django/test/testcases.py", line 1123, in setUpClass
    super().setUpClass()
  File "/Users/bfalk/miniconda3/envs/web-server-eval/lib/python3.8/site-packages/django/test/testcases.py", line 197, in setUpClass
    cls._add_databases_failures()
  File "/Users/bfalk/miniconda3/envs/web-server-eval/lib/python3.8/site-packages/django/test/testcases.py", line 218, in _add_databases_failures
    cls.databases = cls._validate_databases()
  File "/Users/bfalk/miniconda3/envs/web-server-eval/lib/python3.8/site-packages/django/test/testcases.py", line 204, in _validate_databases
    if alias not in connections:
TypeError: argument of type 'ConnectionHandler' is not iterable

1 Ответ

0 голосов
/ 24 февраля 2020

После еще нескольких копаний я вижу, что тестовый прогон django не работает в vscode. https://github.com/microsoft/vscode-python/issues/73

Решением, по крайней мере для меня, было использование pytest- django

Вот пример выше, но с использованием pytest - django (после настройки моего pytest.ini файла так, чтобы он указывал на мое приложение django)

service_path = "/api/v0.1/service"

def test_responding(client):
    uri = "valid_uri"

    resp = client.get(f"{service_path}/?uri={uri}")
    assert resp.status_code == 200
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...