단위 테스트 및 장고 트랜잭션 관리 방법에 문제가 있습니다. 내가 가진 내 테스트에서TransactionTestCase 및 pytest로 테스트가 실패합니다
def send():
autocommit = transaction.set_autocommit(False)
try:
# stuff
finally:
transaction.rollback()
transaction.set_autocommit(autocommit)
:
class MyTest(TransactionTestCase):
def test_send(self):
send()
오전 데 문제가 내 test_send
내 다른 성공적으로하지만 80 %를 전달하는 내 코드에서
나는 기능이 테스트. 을 나는 단지 MyApp를 내 테스트를 실행할 때 일을 더 명확하게하려면
다른 시험의 트랜잭션이 BTW 내 테스트
편집을 실행하는 데 py.test를 사용하고
실패하는 것 같다 .test.test_module.py 잘 실행되고 3 가지 테스트가 모두 통과되지만 대부분의 테스트를 모두 실패하면 테스트 애플리케이션을 생성하려고 시도합니다또한 모든 테스트는 django의 기본 테스트 러너
EDIT2 : 여기 이 문제를 테스트하는 최소한의 예는 다음과 같습니다 염두에
class ManagementTestCase(TransactionTestCase):
def test_transfer_ubl(self, MockExact):
pass
class TestTestCase(TestCase):
def test_1_user(self):
get_user_model().objects.get(username="admin")
self.assertEqual(get_user_model().objects.all().count(), 1)
베어는 "관리자"사용자를 추가하는 datamigration이
을합니다 (ManagmentTestCase 전에 실행할 때 TestTestCase 혼자가 아니라 성공)자동 커밋은 아무 관계가없는 것처럼 보입니다.
이 send() 메소드의 출처는 무엇입니까? send()를 호출 한 후에 실패한 테스트의 예를 게시하십시오. – e4c5
send 메소드를 작성했습니다. 다른 객체가 격리되어있는 객체를 계산할 때 실패합니다. – maazza
내 의견이 명확하지 않으면 죄송합니다. send 메소드는 뷰의 일부입니까? 테스트 코드의 일부입니까? 또한 함께 실행될 때 실패한 테스트 샘플을 추가하십시오. – e4c5