필자는 단순한 파이썬 모듈 (M1이라고 부름)을 추악함이 포함 된 패키지 내부의 독립 실행 형 (유일한 가져 오기는 collections
)으로 사용합니다. 추한 부분은 패키지의 __init__.py
파일에 있습니다. 하지만 M1은 훌륭하고 깨끗하며 py.test와 함께 사용할 몇 가지 테스트 함수가 포함되어 있습니다.독립 실행 형 py.test (__init__.py 파일 무시)
이제 M1을 테스트하고 모든 추악함을 무시하고 싶습니다. 그러나 py.test는 __init__.py
- 을 실행하고 싶습니다.이 문제를 방지 할 수있는 방법이 있습니까? 지금은 __init__.py
파일을 고칠 수 없으며 M1 테스트 모듈의 내용 바로 옆에 테스트 기능을 포함하고 싶습니다.
나는이 질문을 이미 읽었습니다 : 문제를 설명하고 있지만 해결책이없는 `py.test` and `__init__.py` files.
내 __init__.py
파일은 다음과 유사합니다.
from .M1 import CleanThing1, CleanThing2
from .Evil1 import UglyThing1, UglyThing2
을하고 Evil1 모듈이 제대로 실행하기 위해 어떤 PYTHONPATH의 해커를 필요로하는 문제는, 내가
py.test mymodule/M1.py
를 실행할 때 때문에 Evil1 모듈의 실패 : 그냥 패키지 범위에 항목을 홍보합니다. 하지만 지금은 M1 모듈을 테스트하고 싶습니다.
방법은 인 MyModule/conftest.py을 만들려면 어떻게해야합니까? 내 모듈 이름은 M1.py (패키지가 아닌 모듈)입니다 ... M1/conftest.py를 만들어야합니까? –
conftest.py 파일을 만드는 방법은 무엇을 의미합니까? 내 답변에 패키지 구조를 추가했습니다.이 구조가 귀하의 것과 닮았기를 바랍니다. – Jakob
오, 고마워. 그림이 정말 도움이됩니다! 용어의 문제였습니다. 파이썬을 올바르게 이해한다면, "mymodule"은 실제로 서브 패키지가되어야합니다. 아니면 용어를 오해하고 있습니다. –