是否有一个在测试场景的开头/结尾触发的函数?函数setUp和tearDown在每次测试之前/之后触发.
我通常想拥有这个:
class TestSequenceFunctions(unittest.TestCase):
    def setUpScenario(self):
        start() #launched at the beginning, once
    def test_choice(self):
        element = random.choice(self.seq)
        self.assertTrue(element in self.seq)
    def test_sample(self):
        with self.assertRaises(ValueError):
            random.sample(self.seq, 20)
        for element in random.sample(self.seq, 5):
            self.assertTrue(element in self.seq)
    def tearDownScenario(self):
        end() #launched at the end, once
现在,这些setUp和tearDown是单元测试并在我的所有场景中传播(包含许多测试),一个是第一个测试,另一个是最后一个测试.
我正在使用Django进行项目,并且已经投入生产.
在生产环境中,每当发生服务器错误时都会呈现500.html.
如何在开发环境中测试500.html的渲染?或者我如何在开发中渲染500.html,如果我关闭调试我仍然得到错误而不是500.html
背景:我包含一些基于页面的页面元素,有些在调用500.html时丢失,并且想要在开发环境中调试它.
我正在编写一个可重复使用的django应用程序,我需要确保它的模型仅在应用程序处于测试模式时同步.我曾尝试使用自定义DjangoTestRunner,但我没有找到如何做到这一点的示例(文档仅显示如何定义自定义测试运行器).
那么,有没有人知道如何做到这一点?
编辑
我是这样做的:
#in settings.py
import sys
TEST = 'test' in sys.argv
希望能帮助到你.
刚升级到Django 1.3.我每次检查给定的URL是404时,我的测试套件现在都会显示一堆无用的警告.它在Django 1.2下没有这样做.
例如,假设我们有连接的视图和URL,以便此测试通过:
def test_foo(self):
    response = self.client.get('/foo/bar/')
    self.assertEqual(response.status_code, 200)
    response = self.client.get('/foo/bar2/')
    self.assertEqual(response.status_code, 404)
虽然测试通过,但404(我们期望)会触发对控制台的警告:
.WARNING not Found:/ foo/bar2 /
这只是无用的噪音; 我目前的一个测试套件中有大约30个.
有没有办法在测试期间让那些人沉默?我想在正常操作期间让它们保持开启状态.而且我认为我不想过滤掉'django.request'记录器中的所有警告.