Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 第一次测试后,测试瓶应用程序失败_Python_Flask_Flask Sqlalchemy_Functional Testing_Splinter - Fatal编程技术网

Python 第一次测试后,测试瓶应用程序失败

Python 第一次测试后,测试瓶应用程序失败,python,flask,flask-sqlalchemy,functional-testing,splinter,Python,Flask,Flask Sqlalchemy,Functional Testing,Splinter,正如听起来一样,我有一个基本的功能测试套件,包括两个测试。我使用一个小的层次结构来创建一个名为FunctionalTestBase的共享类,该类由两个子类继承。在FunctionalTestBase中,我使用flask\u testing导入LiveServerTestCase,并且还使用Splinter和SQLAlchemy。在我的设置方法中,我基本上要做四件事:创建一个浏览器,我可以使用它来运行我的应用程序,让我的应用程序运行,创建数据库连接,以及为我的数据库设置种子 这是我的设置方法的外观

正如听起来一样,我有一个基本的功能测试套件,包括两个测试。我使用一个小的层次结构来创建一个名为
FunctionalTestBase
的共享类,该类由两个子类继承。在
FunctionalTestBase
中,我使用
flask\u 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...
我的拆卸方法如下:

def tearDown(self):
    self.browser.quit()
    self.db.session.remove()
    self.__drop_database()

def __drop_database(self):
    self.db.reflect()
    self.db.drop_all()

我的实际测试用例存在于这两个子类中,我只是使用超类在这两个用例/类之间共享这个设置。我的问题是,当我运行这两个测试时,运行的第一个测试(无论哪一个)都能完美地工作,而第二个测试永远不会工作。在我看来,有一个关键的一块撕裂难题,我错过了,我不知道它是什么!非常感谢您的帮助。

看来您需要切换到
类方法,而不是
setUp
tearDown
实例方法。

看起来您需要切换到
类方法,而不是
setUp
tearDown
实例方法。

这不起作用。我无法将它们放入类方法中,因为我的应用程序需要存在于我相信的每个测试类实例上。这不起作用。我不能将它们放入类方法中,因为我的应用程序需要存在于我相信的每个测试类实例上。