我使用连接到Django外壳的ipyhton笔记本运行一些测试。我在Django 1.4上。从ipython笔记本运行django单元测试有奇怪的行为
首先,如果我按照以下配置运行,有时它可以完美运行并在其他时间运行,只是挂起时没有输出且没有错误。我要彻底杀灭ipyhton内核并关闭所有的笔记本电脑,然后再试一次(当挂起事件发生时,所有打开的笔记本电脑停止工作)
如果我从unittest.TestCase
而不是django.test.TestCase继承它完美的作品每一次。但是,我需要后者,所以我可以在我的实际测试中使用django的TestCase.client。
注意:在这两种情况下,我跳过测试数据库,因为我在缺少芹菜数据库时出现故障。另一次我会穿过那座桥。
笔记本:
from django.utils import unittest
from django.test import TestCase
from django.test.utils import setup_test_environment
from django.test.simple import DjangoTestSuiteRunner
class MyTestCase(TestCase):
def test_001(self):
print "ok"
def test_002(self):
self.assertEqual(True , True)
if __name__ == '__main__':
setup_test_environment()
runner = DjangoTestSuiteRunner(verbosity=1, interactive=True, failfast=True)
suite = unittest.TestLoader().loadTestsFromTestCase(MyTestCase)
#old_config = runner.setup_databases()
result = runner.run_suite(suite)
#runner.teardown_databases(old_config)
runner.suite_result(suite, result)
通常不会使用iPython笔记本来运行测试,因为有一个shell命令可以这么做 - “python manage.py test”。 – 2014-11-15 09:49:54
了解,这是不正常的程序。充分了解管理命令。从来没有这么少,有这个问题,我不明白为什么它不应该工作。 – arctelix 2014-11-15 16:42:08