我在不同的班级里有两个测试,测试相似的行为:
Client()
的书签中添加产品。你知道吗就个人而言,它起作用了:
./manage.py test compare.test.CompareBookmarkTests
或者
./manage.py test compare.test.CompareAccountTests
它们一起发射时失败:
./manage.py test
我试着:
setUp
和tearDown
方法目前,我还没有找到有关stackoverflow的相关答案。django文档中也没有。你知道吗
from django.contrib.auth.models import User
from django.test import TestCase
from .models import Bookmark, Categorie, Product
class CompareBookmarkTests(TestCase):
def setUp(self):
Categorie.objects.create(id_categorie='someid', name='somename')
p = Categorie.objects.get(pk='someid')
p.product_set.create(id_product='1', product_name='orange', categorie='someid')
User.objects.create_user('john@sign.in', 'john@sign.in', 'smith')
def tearDown(self):
User.objects.all().delete()
Categorie.objects.all().delete()
Bookmark.objects.all().delete()
def test_redirect_logged(self):
self.client.login(username='john@sign.in', password='smith')
# Adding product with id 1 in bookmark
response = self.client.get('/compare/1/bookmark/')
# Get added product form bookmark
bookmark = Bookmark.objects.get(pk=1)
self.assertEqual(str(bookmark), 'Bookmark object (1)')
self.assertEqual(response.status_code, 302)
class CompareAccountTests(TestCase):
def setUp/tearDown: [same as previous class]
def test_get_product(self):
self.client.login(username='john@sign.in', password='smith')
user = User.objects.get(pk=1)
product = Product.objects.get(pk='1')
# Adding product with id 1 in bookmark
add_bookmark = Bookmark.objects.create(id_result=product, user=user)
bookmark = Bookmark.objects.get(pk=1)
response = self.client.get('/compare/account/')
self.assertEqual(str(bookmark), 'Bookmark object (1)')
self.assertEqual(response.status_code, 200)
我希望两个测试在一起启动时都能成功,但我得到:
compare.models.Bookmark.DoesNotExist: Bookmark matching query does not exist.
带--反转:
django.contrib.auth.models.User.DoesNotExist
这可能是初学者的错误,但我看不出来,谢谢你的帮助!你知道吗
我已经找到了可能导致问题的原因:
我使用
psql
并找到了未删除的测试数据库:除了一个非常奇怪的问题:
我用在
psql
:现在,我的测试按预期进行!你知道吗
多亏了awesoon,你的建议使我走上了正轨。你知道吗
相关问题 更多 >
编程相关推荐