저는 GitHub에 저장하고있는 라이브러리에 대해 단위 테스트를 실제로 실시하고있는 프로그래머입니다.
레포지토리에 테스트 스위트를 포함시킬 수도 있었지만 다른 프로젝트를 살펴보면 테스트가 포함 된 것 같습니다.
이것이 잘못된 형태로 간주됩니까? 사용자가 작업 코드에만 관심이 있고 어쨌든 자신의 프레임 워크에서 테스트 할 것이라는 아이디어가 있습니까?
저는 GitHub에 저장하고있는 라이브러리에 대해 단위 테스트를 실제로 실시하고있는 프로그래머입니다.
레포지토리에 테스트 스위트를 포함시킬 수도 있었지만 다른 프로젝트를 살펴보면 테스트가 포함 된 것 같습니다.
이것이 잘못된 형태로 간주됩니까? 사용자가 작업 코드에만 관심이 있고 어쨌든 자신의 프레임 워크에서 테스트 할 것이라는 아이디어가 있습니까?
답변:
테스트는 반드시 저장소에 넣어야합니다. 테스트는 내 의견으로는 코드의 일부이며 다른 사람들이 코드를 이해하는 데 도움이 될 수 있습니다 (잘 작성된 경우). 또한 코드베이스를 변경하거나 기여할 때 다른 사람들을 도울 수 있습니다. 테스트를 잘하면 변경 사항이 실수로 아무 것도 손상되지 않는다는 확신을 줄 수 있습니다.
그러나 테스트 코드는 프로덕션 코드와 잘 구분되어야합니다. 예를 들어 Maven은 프로덕션 및 테스트 코드를 다른 폴더에 저장하여이를 달성합니다. "이 파일은 프로덕션 또는 테스트 코드의 일부입니까?"라는 질문은 절대 발생하지 않아야합니다.
개인적으로 사용 된 라이브러리에 대한 단위 테스트를 내 코드로 작성하지 않습니다. 나는 그들이 작동 할 것으로 예상한다 (적어도 릴리스 버전을 사용할 때 버그가 나타날 수 있음). 통합 테스트에서 일부 테스트 범위를 얻지 만 충분하지 않습니다.
체크인 된 소스 코드에 단위 테스트를 포함 하지 않으면 다음 을 수행 하십시오.
결론적 으로 공식 소스 코드 저장소에 작성된 단위 테스트는 포함하지 않는 것이 좋습니다.
다른 컴퓨터에서 실행할 수있는 기회가 있다면 반드시 포함 시키십시오. 그것들은 별도로 구축되어야하므로 사용자는 필요하지 않으며 추가 종속성이있을 수 있지만 확실히 포함되어야합니다.
리포지토리에 테스트를 포함하지 않는 대부분의 프로젝트에는 단순히 아무것도없는 것으로 의심됩니다.
테스트를 별도의 모듈로 만들어야하는 이유가있을 수 있으므로 이전 코드에 대해 새 테스트를 쉽게 실행할 수 있습니다. 명령 행을 통한 API 안정 라이브러리 또는 블랙 박스 테스트에 유용합니다. 새로운 테스트가 이전 코드로 컴파일되지 않는 컴파일 된 언어의 유용성은 제한적입니다.
방금 ".Brownfield Application Development in .Net"을 읽었으며 소스 제어 및 단위 테스트를 포함하는 위치 / 방법 / 왜 (특히 연속 통합 영역)를 포함하여 애플리케이션 구조에 대한 훌륭한 조언을 제공합니다. . .Net 개발자 인 경우 권장합니다.