2012-01-05 2 views
3

.Net 4 WPF 앱을 MVVM 패턴으로 작성했으며 앱에 대한 몇 가지 단위 테스트를 작성했습니다. 코드 적용을 활성화하고 local.testsettings에서 계측을 활성화했습니다. 내 문제는 코드 커버리지가 올바른 결과를 반환하지 않는 것입니다. 그것은 내 코드의 86 %가 분석되었음을 보여줍니다. 그러나 히트를 치지 않고있는 코드 중 일부는 적중합니다. 이를 증명하기 위해 코드에 중단 점을 넣고 단위 테스트 디버그를 수행했습니다. 중단 점에 도달 했으므로 코드가 확실히 다루어지고 있습니다. 왜 코드 커버리지가 코드가 맞았는지 알 수 없습니까?MS 테스트 코드 범위가 잘못된 결과를 반환합니다.

Visual Studio 2010 SP1에서이 작업을 시도하고 테스트보기에서 테스트를 실행하고 있습니다.

아이디어가 있으십니까?

요청에 따라 일부 코드가 있습니다. 이것은 전체 클래스입니다. 코드 커버리지는 생성자가 히트 치는 것이 아니라고 말합니다. 중단 점은 "Channel = item;" 단위 테스트를 디버깅 할 때 라인이 손상됩니다.

public class ChannelEventArgs : EventArgs 
{ 
    public ChannelEventArgs(IChannel item) 
    { 
     Channel = item; 
    } 

    public IChannel Channel { get; set; } 
} 
+0

코드를 볼 필요가 있습니다. 코드는 하위 레벨 구문의 코드와 관련이 있습니다. –

+0

@JamesMichaelHare가 말했듯이, 관련된 코드를 볼 필요가 있습니다. –

답변

0

많은 정보 만 주어진다면 내 교육받은 추측은 어셈블리를 계측하는 데 문제가 있다는 것입니다.

에 대한 내 대답에있는 항목의 목록을 확인 : Running NUnit tests in Visual Studio 2010 with code coverage

특히 첫 번째 ("장소에 기기"), 세 번째 항목 (하나의 폴더로 구축) 및 마지막 항목 (명령 줄 옵션/noshadow) 당신이 묘사 한 효과가 있습니다.

나는 또한 당신의 테스트 코드는 각각의 어셈블리를로드하는 이상한 경우를 생각할 수 있지만, 당신은 단위 테스트를 작성하지 않았을 것입니다.

관련 문제