개발 테스트 주도는 의미 코드 전에 테스트를 작성 하고 다음과 같은 특정주기 :
- 쓰기 테스트
- 검사 확인 (실행)
- 생산 코드 작성
- 검사 확인 (실행)
- 생산 코드 정리
- 테스트 확인 (실행)
내가 아는 한, 이것은 개발 솔루션으로 프로덕션 코드와 테스트 코드를 매우 빠르게 전환하고 특정 프로덕션 코드 부분에 대한 테스트를 매우 빠르게 수행 할 수있는 경우에만 가능합니다.
이제 C ++ (Bost.Test atm을 사용하고 있습니다)에 대한 단위 테스트 프레임 워크가 많이 있지만 TDD를 만드는 괜찮은 ( 기본 C ++의 경우 ) Visual Studio (플러그인) 솔루션이 실제로 존재 하지 않는 것 같습니다. 사용 된 프레임 워크에 관계없이 견딜 수있는 사이클.
"Bearable"은 별도의 테스트 프로젝트 등을 수동으로 설정하지 않고 특정 cpp 파일에 대해 테스트를 실행하는 원 클릭 동작임을 의미합니다. "Bearable"은 간단한 테스트가 시작 (연결!)되어 매우 빠르게 실행됨을 의미합니다. .
그렇다면 Visual Studio를 사용하여 네이티브 C ++ 개발에 TDD주기를 가능하게하는 도구 (플러그인) 및 기술은 무엇입니까?
참고 : 무료 또는 "상업용"도구를 사용하는 것이 좋습니다.
참고 : 프레임 워크 권장 사항이 없습니다 . 프레임 워크에 전용 Visual Studio 플러그인이없고 플러그인을 권장하지 않는 한.
편집 참고 : 지금까지 답변은 단위 테스트 프레임 워크를 Visual Studio에 통합하는 방법에 대한 링크를 제공했습니다. 리소스는 UT 프레임 워크가 컴파일하고 첫 번째 테스트를 실행하는 방법에 대해 다소 설명합니다. 이것은 이 질문에 관한 것이 아닙니다 . 실제로 생산성을 높이고 수동으로 유지 관리하는 (!) 단위 테스트를 사용하여 생산 클래스와 분리 된 vcproj를 사용하면 TDD가 불가능하다는 오버 헤드가 더 커질 것이라고 생각합니다. 내가 아는 한, 단위 테스트 및 TDD를 활성화하기 위해 Java 또는 C #에 추가 "프로젝트"를 추가 하지 않는 것이 좋습니다. 이것은 해야 올바른 도구가 주어지면 C ++로 가능하지만 TDD / C ++ / VS를위한 도구는 거의없는 것 같습니다.
인터넷 검색 을 통해 올바른 방향을 목표로하는 VisualAssert 도구를 발견 했습니다. 그러나 CppUnit, Boost.Test 등과 비교하여 널리 사용되지 않는 것 같습니다.
편집 :이 질문의 맥락에 의견을 추가하고 싶습니다. 나는 그것이 문제의 개요 (일부)에 대한 좋은 요약을한다고 생각한다 : ( Bill ONeal의 의견 )
Visual Studio는 사용자가 합리적으로 편집 할 수있는 "빌드 스크립트"를 사용하지 않습니다. 하나의 프로젝트는 하나의 바이너리를 생성합니다. 또한 Java는 Java가 완전한 바이너리를 빌드하지 않는다는 특성을 가지고 있습니다. 빌드하는 바이너리는 클래스 파일의 ZIP입니다. 따라서 별도로 컴파일 한 다음 JAR을 수동으로 함께 컴파일 할 수 있습니다 (예 : 7z 사용). C ++과 C #은 실제로 바이너리를 연결하므로 일반적으로 이와 같은 스크립트를 작성할 수 없습니다. 가장 가까운 것은 모든 것을 개별적으로 컴파일 한 다음 두 개의 연결 (하나는 프로덕션, 하나는 테스트)을 수행하는 것입니다.
7z
. C ++과 C #은 실제로 바이너리를 연결하므로 일반적으로 이와 같은 스크립트를 작성할 수 없습니다. 가장 가까운 것은 모든 것을 개별적으로 컴파일 한 다음 두 개의 연결 (하나는 프로덕션, 하나는 테스트)을 수행하는 것입니다.
As far as I am aware, you do not add extra "projects" to a Java or C# thing to enable Unit Tests and TDD,
<-나는 이것이 옳지 않다고 생각합니다. 일반적으로 C #에도 여러 프로젝트가 있습니다. 테스트 코드를 프로덕션 바이너리로 제공하고 싶지 않습니다.