Django testing
-
Github Action으로 django test 하기(CI)Django testing 2021. 6. 4. 12:37
github 으로 들어간 후, 본인의 프로젝트로 들어가서 아래 이미지처럼 'Actions'를 선택합니다. 들어간 후, 처음엔 Django 에 관한 부분이 없지만 Continuous integration workflows 부분 중 'More continuos integration workflows' conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: could not connect to server: Connection refused E Is the server running on host "localhost" (::1) and accepting E TCP/IP connection..
-
Django 기본 view 테스트Django testing 2021. 6. 2. 18:01
Django 를 개발하면서 제일 기본적인 view 를 생성하고 기본 결과를 테스트 한다. TestCase 에서 제공하는 client 라는 객체를 이용해서 get, post 같은 method를 테스트 할 수 있는데, 여기서는 우선 get을 테스트할 예정이다. 먼저 views 파일에서 AuthorListView 클래스를 생성합니다. from django.http import JsonResponse from django.shortcuts import render from django.views import generic from catalog.models import Author class AuthorListView(generic.ListView): model = Author paginate_by = 10 d..
-
django 테스트DB 없이 유닛 테스트하기Django testing 2021. 5. 31. 15:35
python manage.py test를 진행하면 다음과 같이 생각하고는 다르게 테스트 DB를 생성하고, 테스트 DB를 삭제하는 것을 확인할 수 있다. 이렇게 매번 테스트 DB를 생성하고, 삭제를 하게 되면 새로운 데이터에 한해서는 테스트가 가능하지만, 기존 DB에 있는 데이터를 테스트하기 어려운 문제점이 있다. django를 만들면서 생성되는 기본 앱, 여기서는 django_testing 라는 폴더에 test_runner.py 와 settings_test.py 두 파일을 생성한다. test_runner.py from django.test.runner import DiscoverRunner class TestRunner(DiscoverRunner): def setup_databases(self, **kw..
-
파이썬 TestCase, unit test 사용하기Django testing 2021. 5. 31. 11:58
1. Django TestCase Django에서 기본으로 제공하는 TestCase 클래스 django.test 에 포함된 클래스이며, TransctionTestCase 를 상속받아서 사용하고 있다. 데이터베이스를 사용하지 않는 경우는 SimpleTestCase 사용하는 것을 권장한다. classmethod TestCase.setUpTestData() 초기에 한번만 실행해서 초기 데이터 를 만드는 역할 setUp() test 할때마다 호출되서 해당 데이터셋을 만드는 역할 class YourTestClass(TestCase): @classmethod def setUpTestData(cls): Author.objects.create(first_name='test setUpTestData', last_name..
-
Testing 의 시작과 종류Django testing 2021. 5. 31. 11:48
1. Testing의 시작 Django 개발을 진행하다 보면 분명히 직접 확인해서 수동으로 테스트를 진행했음에도, 예기치 못한 버그가 발견되거나 배포에 대한 확신을 가지기 어려운 경우가 있다. 이러한 것을 미연에 방지하기 위해 testing 을 효과적으로 하기 위해 테스트 코드를 작성하고, 다른 사람이 특정 기능에 대해 이해를 할 때도 테스트 코드를 통해 어떤식으로 동작하는지 파악하기 위해 시작하게 되었다. 2. 일반적인 Testing의 종류 Unit tests (유닛 테스트) 독립적인 콤포넌트의 (성능이 아닌) 기능적인 동작을 검증한다. 흔히 class나 function 레벨로 수행한다. Regression tests ( 버그수정 확인 테스트 ) 기존에 보고된 버그들이 재발하는지 테스트한다. 각 테스트..