[TROUBLESHOOTING] pytest를 이용한 test 시 db 연결하기

THOVY·2024년 3월 31일
0

만들어진 python server를 실행하면 DB에 연결하도록 만들어놓았는데,
테스트 코드는 어플리케이션의 코드와는 별도로 실행되기 때문에 DB 연결 또한 별도로 만들어줘야한다.
DB 뿐만 아니라 대부분의 초기화 작업을 따로 해줘야한다.

당연히 이 때 연결되는 DB는 실제 사용할 어플리케이션 DB와는 다른 DB를 연결해야겠지?

pytest에서는 fixture를 이용해서 테스트 실행 전후에 자동으로 DB에 connect, close 할 수 있다.

pytest에서 테스트 설정을 정의할 때는 conftest.py를 사용함.
test 디렉토리 최상단에 conftest.py를 만들어주자.

# test/conftest.py
import pytest
from app.dbmodule import Mongodb

@pytest.fixture(scope="module", autouse=True)
def connect_mongodb():
	db = Mongodb()
    db.connect()
    yield
    db.close()

이러게 하면 테스트가 실행되면서 db에 연결되고 테스트가 완료된 뒤 연결이 해제된다.

autouseTrue로 했기 때문에 해당 fixture는 모든 테스트에서 자동으로 사용된다.

profile
BEAT A SHOTGUN

0개의 댓글