2008-10-30 3 views
1

저는 개발중인 단위 테스트를 거친 DLL에 대해 VS2008의 코드 커버리지를 실행하고 있습니다. 일부 기능의 경우 2 개의 블록이 포함되지 않았으며 50 개 정도가 포함되어 있다고 주장합니다. VS2008 강조 표시 기능을 볼 때 발견되지 않은 블록을 찾을 수 없습니다.VS2008 코드 커버리지 - "커버되지 않은 블록"을 찾을 수 없습니다.

강조 표시는 일부 기능과 함께 작동하는 것처럼 보입니다. 그러나 밝혀진 블록에 대해 다른 색상을 올바르게 보여주기 때문에 강조 표시가 작동합니다. 일치하지 않는 것 같습니다.

이것은 버그 또는 PIBKAC입니까? 후자라면, 내가 뭘 잘못하고 있니?

답변

1

코드 커버리지 분석기가 try/catch 블록에서 중괄호를 닫는 데 문제가있는 부분을 보았습니다. 이런 종류의 것들을 볼 때 나는 실제 코드가 다루어지는 것을 볼 수만 있다면 걱정할 필요가 없습니다.

[편집] 나는 두 번째 TestDriven.NET 권장 사항. 필자는 개별 테스트를 쉽게 실행할 수있는 마우스 오른쪽 버튼 클릭 테스트 메뉴가 좋으며 기본 제공 범위 대신 NCover를 사용합니다. 대부분 다른 창에서 열리고 내 주 편집기에서 텍스트를 색칠하지 않기 때문입니다.

+1

모든 테스트 실행 대신 솔루션에서 (Ctrl + R/A 및 Ctrl + R/Ctrl + A) 실행 컨텍스트에서 Ctrl + R/T 및 Ctrl + R을 사용하면 VS에서 개별 테스트를 쉽게 실행할 수 있습니다./Ctrl + T) 커서가있는 위치를 기준으로 테스트를 실행합니다. TestClass에서 클래스를 실행하면 TestMethod에서 해당 메소드 만 실행됩니다. – peSHIr

+0

닫는 중괄호 문제를 검색 할 때 귀하의 답변을 발견했습니다. 닫는 중괄호에 빨간색 강조 표시가있어서 실제로는 범위가 아니라 버그가 있다는 것을 알았습니다. 내 코드는 try/catch에 있었고, 실제로 테스트는 매번 예외를 던지기도했지만, 실제로 테스트는 try/catch로 이스케이프 되었기 때문에 실제로는 테스트 블록의 끝까지 도달하지 못했습니다. 따라서 예외를 throw하지 않고 블록 끝까지 테스트를 수행하면 적용 범위는 100 %입니다. 희망이 도움이됩니다. – Paul

1

덮여 블록부분적으로 덮여 블록 구별해야합니다. 색상을 올바르게 기억한다면 기본 설정과 유사합니다.

0

열거 형의 모든 구성원에 대해 다른 경로를 선택하는 switch 문에 "기본"경로가없는 상황이있었습니다. switch 문을 강조 표시하지 않고 괄호로 묶어 완전히 덮지 않은 블록을 발견 할 수 있습니다.