Rod*_*nte 2 python testing django
django测试成功后数据被删除正常吗?我不是在谈论每次测试运行,让我举个例子:
class MyFooTest(TestCase):
def test_foo1(self):
# Some foo test code here
def test_foo2(self):
# Some foo test code here
Run Code Online (Sandbox Code Playgroud)
测试test_foo1时生成的数据在测试时不存在test_foo2,出现这种情况是否正常?
从文档中,底部解释了TransactionTestCase和之间的区别TestCase:
另一方面,TestCase 不会在测试后截断表。相反,它将测试代码包含在一个在测试结束时回滚的数据库事务中。这保证了测试结束时的回滚将数据库恢复到其初始状态。
由于每个单独的测试方法都包含在一个atomic块中,并且每个原子块在测试方法结束时回滚,这是预期的行为。Django 这样做是为了确保测试是隔离的,以便在出现问题时更容易发现问题。
如果您需要数据在多个测试方法中持久化,您可以在setUpTestData(). 只要确保不要更改由setUpTestData(). 内存中的更改将持续存在,但数据库更改将回滚。
| 归档时间: |
|
| 查看次数: |
1955 次 |
| 最近记录: |