Я занимаюсь разработкой приложения CherryPy и хочу написать для него несколько автоматических тестов. Я решил использовать для этого тесты носа. Приложение использует sqlalchemy в качестве базы данных, поэтому мне нужно использовать пакет Fixture для предоставления фиксированных наборов данных. Также я хочу делать веб-тесты. Вот как я все это установил:
У меня есть вспомогательная функция init_model(test = False)
в файле, где создаются все модели. Он подключается к производственной или тестовой (если test == True или cherrypy.request.app.test == True) базе данных и вызывает create_all
Затем я создал базовый класс для таких тестов:
class BaseTest(DataTestCase):
def __init__(self):
init_model(True)
application.test = True
self.app = TestApp(application)
self.fixture = SQLAlchemyFixture(env = models, engine = meta.engine, style = NamedDataStyle())
self.datasets = (
# all the datasets go here
)
А сейчас я делаю свои тесты, создавая дочерние классы BaseTest и вызывая self.app.some_method()
Я впервые делаю тесты на python, и все это кажется очень сложным. Я хочу знать, использую ли я упомянутые пакеты по назначению их авторов и не слишком ли это сложно.