나는 Flask로 작성되었으며 Declarative Extension http://flask.pocoo.org/docs/patterns/sqlalchemy/과 함께 SQLAlchemy를 사용하여 얼마 동안 작업해온 프로젝트를 가지고 있습니다. 최근에 프로젝트 테스트를 시작하기로 결정했으나 내 인생에서 어떻게 작동시키는 지 알 수는 없습니다.SQLAlchemy를 기반으로 Python Flask 시스템을 올바르게 테스트하는 방법 Declarative
나는 http://flask.pocoo.org/docs/testing/을 보았지만 제대로 작동하지 않는 것 같습니다.
다른 웹 사이트에서 여러 가지를 시도했지만 올바르게 작동하는 것을 찾을 수 없습니다.
class StopsTestCase(unittest.TestCase):
def setUp(self):
self.engine = create_engine('sqlite:///:memory:')
self.session = scoped_session(sessionmaker(autocommit=False,
autoflush=False,
bind=self.engine))
models.Base = declarative_base()
models.Base.query = self.session.query_property()
models.Base.metadata.create_all(bind=self.engine)
def test_empty_db(self):
stops = session.query(models.Stop).all()
assert len(stops) == 0
def tearDown(self):
session.remove()
if __name__ == '__main__':
unittest.main()
불행히도, 나는 다음과 같은 오류가 발생합니다.
OperationalError: (OperationalError) no such table: stops u'SELECT stops.agency_id AS stops_agency_id, stops.id AS stops_id, stops.name AS stops_name, stops."desc" AS stops_desc, stops.lat AS stops_lat, stops.lon AS stops_lon, stops.zone_id AS stops_zone_id \nFROM stops'()
----------------------------------------------------------------------
Ran 1 test in 0.025s
FAILED (errors=1)
이 문제에 대한 도움을 주시면 감사하겠습니다. 누군가가 이전에 이런 일을 해보고 작동 시키면 몇 가지 조언을하겠습니다. 미리 감사드립니다.
나는 또한 물건의 일부를 포함하여 시도 이 질문 에서뿐만 아니라 : http://stackoverflow.com/questions/833626/i-need-a-sample-of-python-unit-testing-sqlalchemy-model-with-nose –
Jamie가 좀 더 자세히 설명해 주겠다. 이 현재의 테스트 케이스의 목적은 무엇입니까? 아니면이를 통해 무엇을 달성하고 싶습니까? –
@JamieStarke는 Flask에 매우 익숙하며 동일한 예외가 발생하면 – sunny