Flask で書かれており、Declarative extension http://flask.pocoo.org/docs/patterns/sqlalchemy/で SQLAlchemy を使用する、私がしばらく取り組んできたプロジェクトがあります。最近、プロジェクトの単体テストを開始することにしましたが、私の人生では、それを機能させる方法を理解できないようです。
http://flask.pocoo.org/docs/testing/を見ましたが、うまくいかないようです。
さまざまな Web サイトのものを組み合わせてみましたが、正しく機能するものを見つけることができません。
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)
これに関するヘルプは大歓迎です。誰かがこれまでにこれを経験したことがあり、それを機能させたことがあれば、いくつかの指針が欲しいです! 前もって感謝します。