在Python unittest中创建一个昂贵的对象,以便在所有测试中共享

时间:2016-01-21 16:41:20

标签: python python-unittest

我正在尝试为我的数据库应用程序编写测试。现在这是我的结构:

application_files
test/
    __init__.py
    test1.py
    test2.py

我想创建一个临时数据库,我希望所有测试都使用该数据库。在__init__.py我有以下内容:

__init__.py:

class ApplicationTestCase(TestCase):
    @classmethod
    def setUpClass(self):
        create_database()

    def setUp(self):
        clear_database()

    @classmethod
    def tearDownClass(self):
        kill_database()

在test1.py中:

from . import ApplicationTestCase

class TestObject1(ApplicationTestCase):
    def __init__(self, *args, **kwargs):
        super(self.__class__, self).__init__(*args, **kwargs)

    def do_test_a(self):
        whatever()

    def do_test_b(self):
        whatever()

test2.py几乎与test1.py

相同

目前,我的临时数据库已创建,然后已删除test1和test2。我只希望它被创建然后删除一次。我已尝试在def setUpModule():中添加__init__.py,但该功能似乎根本没有被触及。

0 个答案:

没有答案