IT TIP

nose vs pytest-내가 선택해야하는 (주관적) 차이점은 무엇입니까?

itqueen 2020. 10. 12. 21:20
반응형

nose vs pytest-내가 선택해야하는 (주관적) 차이점은 무엇입니까?


나는 많은 (단위) 테스트와 함께 다소 큰 (다중 스레드) Python 프로젝트 작업을 시작했습니다. 가장 중요한 문제는 애플리케이션을 실행하려면 컨텍스트 관리자에 의해 구현되는 사전 설정 환경이 필요하다는 것입니다. 지금까지이 관리자 내에서 테스트를 실행하는 단위 테스트 실행기의 패치 버전을 사용했지만 다른 테스트 모듈간에 컨텍스트를 전환 할 수는 없습니다.

nose와 pytest는 많은 세분화에서 조명기를 지원하기 때문에 이러한 작업을 지원하므로 nose 또는 pytest로 전환하는 방법을 찾고 있습니다. 이 두 라이브러리 모두 '태그 지정'테스트를 지원하고 태그가 지정된 하위 집합 만 실행합니다.

나는 nose와 pytest의 문서를 조금 살펴 보았고, 그 라이브러리의 더 큰 부분은 본질적으로 동일한 기능을 지원한다는 것을 알 수 있습니다. 단, 이름이 다르거 나 약간 다른 구문이 필요할 수 있습니다. 또한 사용 가능한 플러그인에서 약간의 차이가 있음을 지적했습니다 (nose에는 다중 프로세스 지원이 있으며 pytest는 예를 들어 보이지 않는 것 같습니다)

그래서 악마는 세부 사항에있는 것 같습니다. 이는 (적어도 적어도) 개인적인 취향을 의미하며 우리는 우리의 개인적인 취향에 가장 잘 맞는 라이브러리를 사용하는 것이 좋습니다.

그래서 우리의 필요에 가장 잘 맞는 라이브러리 / 커뮤니티 콤보를 선택하기 위해 왜 코나 파이 테스트를해야하는지 주관적인 논의를 요청하고 싶습니다.


Pylons의 기본값이었던 Nose를 사용했습니다. 나는 그것을 전혀 좋아하지 않았다. 여러 위치에 구성 덩굴손이 있었고 거의 모든 것이 문서화되지 않은 플러그인으로 수행되어 훨씬 더 간접적이고 혼란 스러웠으며 기본적으로 단위 테스트 테스트를 수행했기 때문에 정기적으로 유니 코드 트레이스 백으로 중단되어 오류의 원인을 숨겼습니다.

나는 지난 몇 년 동안 py.test에 꽤 만족했습니다. 단지와 테스트 쓸 수 있다는 assert상자 밖으로 나를이 테스트를 작성 싫어 만드는 방법 이하, 핵심은 매우 간단했다 꼭대기에 내가 무엇을해야 해킹. 고정 된 플러그인 인터페이스가 아니라 훅이 많고, 더 깊이 파헤쳐 야하는 경우 꽤 이해할 수있는 소스 코드가 있습니다. 나는 심지어 py.test에서 Testify 테스트를 실행하기위한 어댑터를 작성했고, py.test보다 Testify에 더 많은 문제가 있었다.

즉, nose에는 클래스없는 테스트를위한 플러그인이 있고 요즘에는 내성을 주장하므로 둘 중 하나를 사용해도 괜찮을 것입니다. 그래도 py.test를 사용하여 시작할 수있는 것처럼 느껴지고 중단 될 때 무슨 일이 일어나고 있는지 이해할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/22856638/nose-vs-pytest-what-are-the-subjective-differences-that-should-make-me-pick

반응형