听起来,我有一个基本的功能测试套件,有两个测试。我使用一个小的层次结构来创建一个名为FunctionalTestBase
的共享类,它由两个子类继承。在FunctionalTestBase
我使用flask_testing
导入LiveServerTestCase
,并且还使用Splinter
和SQLAlchemy
。在我的安装方法中,我基本上要做四件事:创建一个浏览器,我可以使用它来运行我的应用程序,让我的应用程序运行,创建数据库连接,并为我的数据库设定种子。
这就是我的设置方法:
def setUp(self):
self.browser = Browser(test_browser)
self.driver = webdriver.Firefox
self.app = self.create_app()
self.db = db
self.db.app = self.app
self.__drop_database()
self.db.create_all()
# ...seed data after this...
我的tearDown方法如下:
def tearDown(self):
self.browser.quit()
self.db.session.remove()
self.__drop_database()
def __drop_database(self):
self.db.reflect()
self.db.drop_all()
我的实际测试用例存在于两个子类中,我只是使用超类在两个case / classes之间共享此设置。我的问题是,当我运行两个测试时,运行的第一个测试(无论哪个测试)都能正常工作,第二个测试永远不会起作用。在我看来,我失踪了一个关键的泪滴谜题,我无法弄清楚它是什么!非常感谢任何帮助。