我有一个项目我已经做了一段时间了,它是用 Flask 编写的,并使用带有声明性扩展的 SQLAlchemy http://flask.pocoo.org/docs/patterns/sqlalchemy/。我最近决定开始对我的项目进行单元测试,但是对于我的生活,我似乎无法弄清楚如何让它工作。
我查看了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)
对此的任何帮助将不胜感激。如果有人以前经历过这种情况并使它起作用,我想要一些指示!提前致谢。