2014-02-03 3 views
3

Мы тестируем приложения Django с использованием метода тестирования черного ящика (функциональной интеграции), где клиент выполняет тесты с вызовами REST API в приложении Django. Клиент работает на другой виртуальной машине, поэтому мы не можем использовать типичный cover.py (я думаю).тест покрытия django с тестированием черного ящика?

Есть ли способ вычислить покрытие этих тестов черного ящика? Могу ли я каким-то образом объяснить Django о запуске и остановке в режиме тестового покрытия, а затем сообщить об охвате тестирования?

ответ

0

Покрытие для функциональных интеграционных тестов - это действительно другой уровень абстракции, чем охват тестируемого объекта, который охватывает выполняемые строки. Вероятнее всего, вам стоит больше внимания уделять использованию прецедентов в истинном тесте с черным ящиком.

Но если вы ищете покрытие кода в любом случае (и, безусловно, есть причины, по которым вы захотите), похоже, что вы должны иметь возможность использовать cover.py, если у вас есть доступ к серверу для настройки тестовых сценариев , Вам нужно будет реализовать способ завершения процесса django, чтобы позволить cover.py писать отчет о покрытии.

От: https://coverage.readthedocs.io/en/coverage-4.3.4/howitworks.html#execution

«В конце выполнения, coverage.py записывает данные, которые он собранную файл данных»

Это означает, что процессы питона должны прийти к завершение естественно. Убив процесс вручную, вы также получите оболочку coverage.py, предотвращающую запись.

Некоторые идеи до конца Джанго: stop django command using sys.exit()

См: https://docs.djangoproject.com/en/1.10/topics/testing/advanced/#integration-with-coverage-py