Mas*_*isa 7 python testing django automated-tests python-3.x
我需要向我的 django 项目添加测试,我需要在执行测试之前创建数据测试。我在这个问题中阅读了有关设置测试数据的信息。我可以在 setUpClass 中为类中的所有测试创建数据。创建我的完整数据测试是一种耗时的方法,所以我想为所有测试类运行一次,是否有任何方法可以为所有测试类设置一次数据?
我找到了我的答案,希望它可以帮助别人。基于 Django文档。
测试运行器是一个定义 run_tests() 方法的类。Django 附带了一个 DiscoverRunner 类,它定义了默认的 Django 测试行为。这个类定义了 run_tests() 入口点,以及 run_tests() 用来设置、执行和拆除测试套件的其他方法的选择。
对于这个问题,这个类中有 2 个有用的方法。setup_databases和teardown_databases以便我们可以覆盖它们以初始化所有测试类的数据。
from django.test.runner import DiscoverRunner as BaseRunner
class MyMixinRunner(object):
def setup_databases(self, *args, **kwargs):
temp_return = super(MyMixinRunner, self).setup_databases(*args, **kwargs)
# do something
return temp_return
def teardown_databases(self, *args, **kwargs):
# do somthing
return super(MyMixinRunner, self).teardown_databases(*args, **kwargs)
class MyTestRunner(MyMixinRunner, BaseRunner):
pass
Run Code Online (Sandbox Code Playgroud)
定义测试运行器类后,我们需要添加TEST_RUNNER
到设置:
TEST_RUNNER = 'path.to.MyTestRunner'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1661 次 |
最近记录: |