Java의 규칙은 다릅니다. 모든 "모듈"(IntelliJ의 Java와 동일)에는 src 및 test 디렉토리가 있습니다. 따라서 jUnit은 프로젝트마다 실행될 수 있으므로 별도의 테스트 프로젝트가 필요하지 않습니다..Net 테스트 클래스는 다른 프로젝트에 있어야합니까?
답변
예, 확실히 생산품 어셈블리가 테스트 코드를 포함하는 것을 원하지는 않습니다 (제품의 일부가 아니기 때문에 제품 프레임 워크의 일부가 아니기 때문에).
예 - 테스트 클래스는 자체 테스트 프로젝트에 포함되어야합니다.
예 - 외부 참조를 테스트하고 있습니다. 심지어 일부 순수 주의자가 약간의 지름길로 생각할지라도, 당신은 같은 해결책을 택할 수 있습니다.
테스트 코드에서 작업하기 위해 리팩토링 도구 (R #)가 필요하므로 똑같은 솔루션을 원합니다. – ripper234
일반적인 .NET 규칙은 테스트 코드를 별도의 어셈블리에 포함하는 것입니다 (일반적으로 Visual Studio에서 각 프로젝트는 고유 한 어셈블리를 생성합니다).
왜 그렇습니까?
- 는
많은 (I 포함) 당신이 생산 테스트를 배포되어서는 안된다는 생각 배포 선택을 제공합니다. 예를 들어 Question 261177를 참조 -
이 테스트는 때때로이 한계입니다 (비록 당신의 API 디자인 권리를 얻을 필요가 증가 테스트중인 코드의 공개 인터페이스에 대해 작업 할 수 있도록 도와줍니다 - 제한 테스트에 액세스 할 수 있습니다.)
- 작은 각 테스트를 유지하는 데 도움이 나도 같은 프로젝트에 내 테스트를 롤백하는 데 사용하지만, 너무 많이 한 단위 테스트의 결과로 너무 많은 코드를 재사용 할 수있는 유혹이 있었다 발견하고 너무 깨지기
.
필자는 동일한 솔루션에서 필요에 따라 [InternalsVisibleTo] 특성을 사용하지만 별도의 프로젝트에서 테스트를 진행합니다. 각 테스트의 이름을 .Tests.dll로 지정한 다음 NAnt 스크립트에서 와일드 카드를 사용하여 실행할 모든 테스트를 찾습니다.
참고 : Java에서 동일한 패키지에서 테스트를 계속하는 이유 중 하나는 의 테스트에서 패키지로 볼 수있는 방법을 테스트하기 위해 동일한 패키지에이 존재하기 때문입니다. InternalsVisibleTo
은 .Net에서이 제한을 무시합니다.
- 1. 인터페이스가 구현과 다른 프로젝트에 있어야합니까?
- 2. 단위 테스트 클래스는 나머지 코드와 함께 버전 제어하에 있어야합니까?
- 3. .Net : 콜백은 어떤 스레드에 있어야합니까?
- 4. 여러 프로젝트에 여러 TFS 작업 영역이 있어야합니까?
- 5. 클래스는 XML을 통해 저장하고로드 할 수 있어야합니까?
- 6. 예외가 다른 프로젝트에 있어야합니다
- 7. 테스트 프로젝트에 테스트 파일 저장
- 8. 몇 개의 .NET DataSource가 있어야합니까?
- 9. .NET Test Harness 무엇을 가지고 있어야합니까?
- 10. 다른 프로젝트에 하나의 프로젝트에 대한 DLL 참조
- 11. Silverlight에 .NET Framework가 설치되어 있어야합니까?
- 12. Rails Newby : 평범한 오래된 Ruby 클래스는 어디에 있어야합니까?
- 13. 설계 다른 공장 클래스는
- 14. 프로젝트에 .net dll 종속성 추가
- 15. 단위 테스트 파일 관리자 클래스는 어떻게됩니까?
- 16. tfs를 다른 프로젝트에 연결
- 17. Windows Installer MSI에 .NET Framework가 있어야합니까?
- 18. FIPS와 호환되는 .NET SHA1 클래스는 무엇입니까?
- 19. 인터넷 연결을 시작하는 .NET Managed 클래스는 무엇입니까?
- 20. .NET Framework 클래스는 Platform API를 어떻게 호출합니까?
- 21. .Net 클래스는 SSH를 통해 Linux에서 원격으로 실행됩니까?
- 22. Linq2Sql 생성 클래스는 별도의 프로젝트에 넣을 수 있습니까?
- 23. [assembly : PexLinqPackage]를 테스트 프로젝트에 추가하는 방법
- 24. SSRS 2008이 데이터베이스와 다른 시스템에 있어야합니까?
- 25. 기본 ID가 있어야합니까? 다른 필드를 인덱싱 오전
- 26. 다른 프로젝트에 직접 코드를 삽입하십시오.
- 27. 다른 프로젝트에 코드 행 삽입
- 28. .NET 데스크톱 클라이언트로드 테스트
- 29. .Net 테스트 자동화
- 30. .NET 단위 테스트 - applicationSettings 테스트 방법
이론적으로는 true이지만 테스트 코드는 결코 호출되지 않습니다. [TestFixture]로 표시된 클래스의 집합입니다. – ripper234
정확히 말하면, 목적을 위해 공간, 대역폭 및 시간 (어셈블리를로드 할 때)이 필요합니다. –