티스토리 뷰

vscode에서는 파이썬 unittest를 기본 설정으로 잘 사용하고 있었다. 그리고 시간이 지날수록 테스트 파일이 많아져서 테스트를 패키지 별로 디렉터리를 만들어서 분리를 해 주었다.

 

하지만 테스트를 디렉터리로 분리하니 vscode의 테스트에서 테스트 파일들을 찾지 못했다.이를 해결하기 위해서는 setting.json에서 unittest를 재설정이 필요하다.

 

 

 

# 1. setting.json 설정하기

vscode에서 탐색기로 파이썬 프로젝트 디렉터리를 열면 관련 설정 파일이 .vscode 디렉터리에 저장된다.  unittest 설정파일도 이 디렉터리의 settings.json에 저장된다.

 

{
    "python.testing.unittestArgs": [
        "discover",
        "-s",
        "tests",
        "-p",
        "test_*.py",
        "-v",
    ],
    "python.testing.pytestEnabled": false,
    "python.testing.unittestEnabled": true
}

 

settings.json에서 "python.testing.unittestArgs"에 테스트 파일을 찾을 수 있도록 unittest 옵션을 설정해야 한다. 각 옵션에 대해서 자세히 알아보자.

 

## discover

unittest는 discover라는 테스트 탐색 기능을 제공한다. 이 기능을 이용해야 특정 디렉터리를 기준으로 하위 디렉터리를 탐색해나가면서 테스트 파일들을 찾아준다.

 

## "-s", "tests"

"-s" 옵션은 탐색의 시작 디렉터리를 지정하는 옵션이다. 내 프로젝트의 테스트 파일은 "./tests/"에 존재하므로 "tests"를 전달하였다.

 

## "-p", "test_*.py"

"-p" 옵션은 테스트 파일의 패턴을 지정하는 옵션이다. 내 프로젝트의 테스트 파일은 "test_"로 시작하고 ".py"로 끝나니 "test_*.py"를 전달한다.

 

## "-v"

"-v" 옵션은 테스트 실행시 테스트 결과를 자세히 출력하는 옵션이다.

 

 

 

# 테스트 디렉터리에 __init__.py 추가하기

setting.json을 재설정하여도 vscode의 테스트에서 테스트 파일을 제대로 찾지 못할 것이다. 그 이유는 테스트 디렉터리에 __init__.py가 없기 때문이다. unittest discover가 작동하기 위해서는 모든 테스트 디렉터리에 __init__.py파일이 있어야 한다.

__init__.py에 빈파일이여도 문제없다. 이 파일이 있어야만 unittest discover이 제대로 작동한다.

 

 

 

# 마무리하며...

이렇게 settings.json과 __init__.py를 추가하면, vscode의 테스트가 제대로 작동하는 것을 확인할 수 있다.

 

'Python > 개발환경' 카테고리의 다른 글

아나콘다 가상 환경 만들기  (0) 2023.02.02
댓글
공지사항