Tornado:在 运行 所有测试之前重置数据库
Tornado: Reset database before running all tests
我正在使用 Python Tornado 网络服务器。当我写测试时,在所有测试之前,我想做一些事情(比如准备一些数据,重置数据库......)。我怎样才能在 Python 或 Tornado 网络服务器中实现这一点。
在某些语言中,我可以轻松做到这一点。示例:在 Golang 中,有一个名为 main_test.go
.
的文件
谢谢
如果您使用 unittest.TestCase
或 tornado.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
我正在使用 Python Tornado 网络服务器。当我写测试时,在所有测试之前,我想做一些事情(比如准备一些数据,重置数据库......)。我怎样才能在 Python 或 Tornado 网络服务器中实现这一点。
在某些语言中,我可以轻松做到这一点。示例:在 Golang 中,有一个名为 main_test.go
.
谢谢
如果您使用 unittest.TestCase
或 tornado.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