【发布时间】:2015-01-12 06:57:57
【问题描述】:
我正在使用连接到 Django shell 的 ipyhton 笔记本来运行一些测试。我在 django 1.4 上。
首先,如果我按照下面的配置运行,有时它可以完美运行,有时它只是挂起,没有输出也没有错误。我必须完全杀死ipyhton内核并关闭所有笔记本并重试(当挂起事件发生时,所有打开的笔记本都停止工作)
如果我继承自 unittest.TestCase 而不是 django.test.TestCase 它每次都能完美运行。但是,我需要后者,所以我可以在实际测试中使用 django 的 TestCase.client。
注意:在这两种情况下,我都跳过了测试数据库,因为我在缺少 celery 数据库时遇到了故障。我会在其他时间过那座桥。
笔记本:
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 notebook 来运行测试,因为有一个 shell 命令可以这样做 -
python manage.py test。 -
了解,这不是正常的程序。充分了解管理指挥。尽管如此,还是有这个问题,我看不出它不应该工作的任何原因。
标签: django unit-testing ipython ipython-notebook