Django의 새로운 기능이며 다음과 같은 문제가 있습니다. self.client를 사용하여 내 응용 프로그램의 경로를 테스트합니다. 예 :Django 클라이언트 테스트 (get, post) 응답 db에서로드 된 픽스 대신 메인 DB에서 데이터로드
class BookSell(TestCase):
fixtures = [
'sellers.yaml',
'books.yaml'
...
]
def test_get_book_sell(self):
book = Books.objects.get(pk=1)
print(book.name)#it prints "El Quijote" in the test output
response = self.client.get('/sell/book-sell')
self.assertEqual(response.status_code, 200)
self.assertContains(response, "Book Sell")
self.assertContains(response, "El Quijote")#book name
해당 경로에 연결된보기 메소드는 데이터베이스의 일부 데이터를로드 한 다음 렌더링해야합니다. 하지만
python manage.py test app_name
을 실행할 때 응답이 "엘 키호테"를 포함하지 않기 때문에 그것은, 설비에서 데이터를로드하지 않습니다.
python manage.py loaddata fixture_name.yaml ...
을 한 다음 테스트를 다시 데이터베이스에서보기 방법 데이터를로드를 실행 만 나는 실행할 때.
그래서 내가 대신 테스트 데이터베이스
의 주요 데이터베이스에서 테스트, 내보기 방법 부하 데이터를 실행할 때 내가 잘못이다 어떤 결론? 테스트 데이터베이스에서 데이터 만로드 할 수 있습니까?
장고 버전 : 1.9.4
파이썬 버전 : 2.7.6
내가 마지막으로 내가 잘못하고 있었는지 발견
loaddata를 실행 한 후 테스트를 실행할 때 응답에 "El Quijote"가 포함되어 있습니까? 테스트 데이터베이스는 항상 실제 데이터베이스와 완전히 분리되어 있어야하므로 약간의 관련이 있습니다. – perfect5th
예 내 친구, 저는 그것에 대해 걱정하고 있습니다 : c –
"El Quijote"의 이름을 변경하고 테스트에서 모든 책 이름을 인쇄하는 것과는 다른 기본 데이터베이스를 수정하려고합니다 (test_database, "El Quijote")에서 이름을 얻었습니다. 에서 테스트 데이터베이스로 옮겨 졌는지 확인합니다. – perfect5th