我在我的 Django 1.7 项目中有这个测试:
class DummyTestTest(TestCase):
def setUp(self):
self.test_user = User.objects.create(username='tester', first_name='test', last_name='er', password="1234", email="foo@bar.com")
def test_sanity(self):
qs = User.objects.filter(pk = self.test_user.pk)
self.assertIn(self.test_user, qs)
在我看来,这意味着在执行测试期间,测试用户应该是数据库的一部分。但是,如果我执行该测试:
(venv)tinloaf@janeway alumnet % python manage.py test core.tests.DummyTestTest
Creating test database for alias 'default'...
F
======================================================================
FAIL: test_sanity (core.tests.DummyTestTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/mnt/data/home/tinloaf/src/alumnet/alumnet/core/tests.py", line 41, in test_sanity
self.assertIn(self.test_user, qs)
AssertionError: <User: tester> not found in []
----------------------------------------------------------------------
Ran 1 test in 0.012s
FAILED (failures=1)
Destroying test database for alias 'default'...
不管我使用TestCase 还是TransactionTestCase,用户都不在那里。我遇到了错误还是我做错了什么?