Дополнительные тестовые случаи в Джанго - PullRequest
0 голосов
/ 08 октября 2018

У нас есть довольно большой набор тестов для бизнес-логики, который завершается в течение нескольких секунд.Мы выполняем это как условие для фиксации (ловушка, которая должна пройти), и это работало хорошо, чтобы блокировать самые глупые ошибки от того, чтобы сделать это с моей машины.

Мы недавно начали добавлять end-конец веб-тестирования с веб-драйвером.Некоторые из этих тестов проходят через сторонние интеграции.Тесты полезны, но они действительно медленные и требуют подключения к сети.

У нас также есть несколько очень длинных логических тестов, которые закомментированы (да!), Если только мы не подозреваем, что что-то не так.

Есть ли разумный способ разделить эти медленные тесты таким образом, чтобы они запускались только тогда, когда мы этого хотим, а не каждый раз, когда вы запускаете ./manage.py test?

1 Ответ

0 голосов
/ 08 октября 2018

Если вы используете тестер по умолчанию Django, то не существует простого способа сделать то, что вы хотите.Возможно, измените структуру тестовой директории, чтобы вы могли вызывать ./manage.py test path/to/directory_with/webtests или ./manage.py test path/to/directory_with_fast_tests

. Другое решение - использование pytest пользовательских маркеров

. Как указано в документации:

import pytest
@pytest.mark.webtest
def test_send_http():
    pass # perform some webtest test for your app

Регистрация пользовательский маркер:

# content of pytest.ini
[pytest]
markers =
    webtest: mark a test as a webtest.

Затем вы просто запускаете pytest -v -m webtest и будут выполняться только отмеченные тесты.

...