티스토리 뷰
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 > 개발환경' 카테고리의 다른 글
라즈베리파이] numpy: Error importing numpy: you should not try to import numpy from its source directory (0) | 2025.01.02 |
---|---|
아나콘다 가상 환경 만들기 (0) | 2023.02.02 |