2011-02-22 3 views
0

예를 들어 테스트 할 클래스가 있습니다. MyClass.javaCobertura 테스트 커버리지는 테스트중인 클래스를 확장하는 테스트를 포함하지 않습니다.

나는 Junit4를 사용하여 MyClass.java에서 보호 된 메소드를 테스트한다. MyClassTest.java라는 테스트 클래스를 만든다. (완전히 다른 패키지에 있기 때문에, 그렇지 않으면 보호 된 메소드를 테스트 할 수 없다.).

MyClass와 MyClassTest의 모든 메소드에 대해 테스트를 작성했습니다. 실행하면 성공합니다.

프로젝트의 모든 클래스에 대해 Cobertura 테스트 커버리지를 실행하면 정상적으로 작동하며 작성된 테스트에 따라 0-100 %의 다양한 적용 범위를 얻게됩니다.

그러나 Cobertura는 MyClass가 테스트되지 않았으므로 MyClass가 0 % 적용 범위라는 것을보고합니다. 실제로 테스트 한 하위 클래스였습니다.

Cobertura가 테스트중인 모든 메소드가 상위 클래스 내에 있으며이를 적용 범위로 선택한다는 사실을 확인하는 방법이 있습니까?

감사

답변

0

Cobertura 악기 모든 클래스는 각 방법의 각 라인에 카운터와 추적합니다. 수퍼 클래스 메소드가 호출되면 자동으로 카운트됩니다.

이러한 메소드가 호출되고 계산되지 않을 것이 확실하다면 소스 디렉토리를 지정하는 방법을 확인하십시오. Cobertura는 이름을 기반으로 클래스를 제외 할 수 있습니다. 실수로 클래스를 제외시킨 곳은 적어도 테스트에서 사용한 제외 조건과 일치하기 때문에 적어도 한번은 기억합니다.