У меня довольно сложное приложение django, которое имеет следующую структуру.
/myapp
/myapp/obj1/..
/myapp/obj1/views.py
/myapp/obj1/forms.py
/myapp/obj2/..
/myapp/obj2/views.py
/myapp/obj2/forms.py
/myapp/tests/..
/myapp/tests/__init__.py
/myapp/tests/test_obj1.py
/myapp/tests/test_obj2.py
У меня намного больше объектов. В /myapp/tests/__init__.py
я импортирую TestCase
экземпляров из test_obj1.py
и test_obj2.py
, и этого достаточно для запуска всех доступных тестов.
Я пытаюсь создать собственный набор тестов. Согласно документации:
Существует второй способ определения набора тестов для модуля: если вы
определить функцию с именем suite () в models.py или tests.py,
Django Test Runner будет использовать эту функцию для создания набора тестов.
для этого модуля. Это следует за предложенной организацией для единицы
тесты. Смотрите документацию по Python для более подробной информации о том, как
построить комплексный набор тестов.
Итак, я создал эту функцию так:
def suite():
suite = unittest.TestSuite()
suite.addTest(TestObj1Form())
suite.addTest(TestObj2Form())
return suite
Однако, когда я запускаю тесты, я получаю эту ошибку: ValueError: no such test method in <class 'myproject.myapp.tests.test_obj1.TestObj1Form'>: runTest
. Конечно, я могу определить этот метод, но тогда, если я выполню тест, он вызовет только этот метод и проигнорирует все методы test*
.
Какие-либо предложения, как правильно создать собственный набор тестов для приложения django? Я гуглил и ничего об этом не нашел.