Tornado:在 运行 所有测试之前重置数据库

Tornado: Reset database before running all tests

我正在使用 Python Tornado 网络服务器。当我写测试时,在所有测试之前,我想做一些事情(比如准备一些数据,重置数据库......)。我怎样才能在 Python 或 Tornado 网络服务器中实现这一点。

在某些语言中,我可以轻松做到这一点。示例:在 Golang 中,有一个名为 main_test.go.

的文件

谢谢

如果您使用 unittest.TestCasetornado.testing.*TestCase(它们实际上是 unittest.TestCase 的子类),请查看 setUp()tearDown() 方法。你可以像

一样包装你想要的一切
class MyTests(unittest.TestCase):

    def setUp(self):
        load_data_to_db()

    def test_smth(self):
        self.assertIsInstance("setUp and tearDown are useful", str)

    def tearDown(self):
        cleanup_db()

在您的测试文件夹中,您创建 __init__.py 并在此处初始化所有内容。

// __init__.py
reset_database()
run_migration()
seed_data()

请注意,您应该从根文件夹配置项目 运行ning 测试。例如,如果您的测试在 app/tests/api/sample_api.py 内,您的测试应该是 app 中的 运行。在这种情况下,__init__.py 将始终 运行 在 运行 之前 sample_api.py。这是我通常 运行 用于 运行 项目内所有测试的命令行:

python -m unittest discover