Django测试中的执行顺序是啥

Posted

技术标签:

【中文标题】Django测试中的执行顺序是啥【英文标题】:What is the order of execution In Django TestsDjango测试中的执行顺序是什么 【发布时间】:2013-09-26 12:01:16 【问题描述】:

这是一个示例测试类:

@decorator_1()
class SimpleTest(TestCase):

    fixtures = ['test_fixture.json']

    def setup(self):        
        x =1
        y=2

    def teardown(self):        
        x =None
        y=None


    def test_one(self):
        self.assertEquals(1,1)

    @decorator_2 
    def test_two(self):
        self.assertEquals(2,2)

这些部分的执行顺序是什么?:

setup
teardown
fixture loading
decorator_1
decorator_2 
test_one
test_2 

我正在尝试找到一种在加载装置之前覆盖设置变量的方法。

【问题讨论】:

【参考方案1】:

包含一个全新的文件

import sys
try:
    if 'test' in sys.argv:        
        from testsettings import *
except ImportError:
    print "something went wrong with the import"
del sys

修改一些设置

import sys
try:
    if 'test' in sys.argv:        
        MY_SETTING = 'xxy'
        del MY_SETTING_2
except Exception as e:
    print "something went wrong %s" % e.message
del sys

注意:如果您想要删除设置,您必须从您要导入的文件中进行设置。它不能在您正在导入的文件中。

【讨论】:

以上是关于Django测试中的执行顺序是啥的主要内容,如果未能解决你的问题,请参考以下文章

react 钩子中的 useEffect 执行顺序及其内部清理逻辑是啥?

Javascript中代码的执行顺序是啥?

django中的中间件机制和执行顺序

django中的中间件机制和执行顺序

Main中UIApplicationMain之后的Objective C执行顺序是啥?

Unity脚本在层级面板中的执行顺序测试4-附加内容