【问题标题】:Testing Flask application fails after first test第一次测试后测试 Flask 应用程序失败
【发布时间】:2015-12-19 01:38:20
【问题描述】:

就像听起来一样,我有一个包含两个测试的基本功能测试套件。我正在使用一个小的层次结构来创建一个名为FunctionalTestBase 的共享类,它由两个子类继承。在FunctionalTestBase 中,我使用flask_testing 导入LiveServerTestCase,并且还使用SplinterSQLAlchemy。在我的设置方法中,我基本上想做四件事:创建一个浏览器,我可以用它来练习我的应用程序,让我的应用程序运行,创建一个数据库连接,并为我的数据库播种。

这是我的设置方法的样子:

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()

我的实际测试用例存在于两个子类中,我只是使用超类在两个用例/类之间共享此设置。我的问题是,当我运行两个测试时,运行的第一个测试(无论哪个)都运行良好,而第二个测试永远不会运行。在我看来,我错过了拆解难题的关键部分,我无法弄清楚它是什么!非常感谢任何帮助。

【问题讨论】:

    标签: python flask flask-sqlalchemy functional-testing splinter


    【解决方案1】:

    看来您需要切换到 setUpClass() and tearDownClass() 类方法而不是 setUptearDown 实例方法。

    【讨论】:

    • 那行不通。而且我无论如何也无法将它们放入类方法中,因为我的应用程序需要存在于我相信的每个测试类实例上。
    猜你喜欢
    • 2012-08-14
    • 2021-03-19
    • 2019-06-11
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多