250x250
반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

BEAT A SHOTGUN

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

TROUBLESHOOTING

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

thovy 2024. 3. 31. 19:55
728x90
반응형
SMALL

만들어진 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는 모든 테스트에서 자동으로 사용된다.

728x90
반응형
LIST
Comments