Cpp*_*ner 18 django django-testing
我仍在使用Django 1.2.1,我认为对于较新的Django,我们不import unittest会这样做unittest.TestCase.
插图
import unittest
class TestThis(unittest.TestCase):
from django.utils.unittest import TestCase
class TestThis(TestCase):
from django.test import TestCase
class TestThis(TestCase):
Run Code Online (Sandbox Code Playgroud)
据PyCon2011谈话,第二个是稍微更高效.
这是显示关系的图表:

所以django.utils.unittest,django.test继承unittest或者unittest2.
我不确定以下是否正确.请帮忙编辑.
________________________________________________________________
| Name | Django Version | Python Version |
-----------------------------------------------------------------
| unittest | >= 1.0 | >= 2.6 |
-----------------------------------------------------------------
| django.utils.unittest | >= 1.3 | ?? |
-----------------------------------------------------------------
| django.test | >= 1.0 | >= 2.6 |
| - SimpleTestCase >= 1.4 >= 2.7 |
| - LiveServerTestCase >= 1.4 >= 2.7 |
-----------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
在效率方面,三者中哪一个更好?许多Django开发人员在测试时都会模拟,因此有时甚至不需要数据库.有没有办法在我们运行时不创建表格manage.py test myapp.MyClass?对于旧版本(1.3之前),哪一个更好?
Chr*_*lor 14
Django TestCase增强unittest.TestCase了一些额外的功能:
一般来说,您最有可能使用Django的TestCase子类之一.通常这将是django.test.TestCase,为了提高效率,将测试包装在数据库事务中并使用回滚来"撤消"数据库中的测试.如果您需要手动管理测试中的事务,则需要使用django.test.TransactionTestCase,因为您无法在事务中启动/回滚事务.
有一些小问题需要使用django.test.TestCase,请参阅此处的注释以获取更多信息.
也:
如果您只是想找到一种更快地运行测试的方法,请查看在内存中运行测试,并且(如果您使用的是South),设置SOUTH_TESTS_MIGRATE = False为syncdb在创建测试时告诉South使用(更快)DB,而不是运行迁移.
| 归档时间: |
|
| 查看次数: |
5028 次 |
| 最近记录: |