문제

내가 사용하고 Maven(2)Cobertura 플러그인에 대한 보고서를 작성합니다 코드 범위,그리고 나는 다음과 같은 stub 내에서 사용하는 방법:

try {
    System.exit(0);
} catch (final SecurityException exception) {
    exception.printStackTrace();
}
System.err.println("The program never exited!");

고 있다는것을 알 수 있습니다해야하는 예외를 기록하는 등,하지만점이다.Cobertura 거부하는 후 라인 스택 추적 인쇄가 덮여있다.는 라인으로는'}'기 System.err.println 문되지 않을 다음과 같으로 덮여있다.기 전에,종료는 중괄호의 방법은 아니었는 다음과 같으로,따라서 System.err 문입니다.어떤 생각할 수 있는 방법을 설득 cobertura 의 maven plugin,그 이후 System.err.println 문이 보장되는 보호가 되었습니까?

그래,그리고 내가 사용하는 모의 보안을 관리자를 던져 보안이 예외는 그 이후의 가장 쉬운 방법은 내가 찾의 테스트를 만드는 계속 실행 후 System.exit 전화입니다.

도움이 되었습니까?

해결책

나는 사용하지 않은 Cobertura 동안(2005?), 톱 및 이 동작습니다.유사한 문제가 있으로 NCover C#그리고 중괄호는 다음 catch/마지막으로 블록입니다.

나의 제안하는 것에 추가 이 Cobertura 히 유사한 문제.또한,follow@tvanfosson 의 조언을 실현하지 않는 범위에서 괄,지 않는 실제로 되고있다 아무것도에서 JVM,무언가를 무시할 수 있습으로'소음'.

다른 팁

는 범위 보고서입니다.배 테스트합니다.알 수 있는 코드는 정말은 커버에 대해 걱정하지 않을 타격하는 100%.코드 범위가 최고의 사용되는 영역을 찾을 수 있습 무시와 충돌하는 테스트,하지만에 초점을 얻 100%적용으로 목표는 나쁜 습관으로 이어질 수 있는 당신에게 건너뛰기는 테스트를 작성해야하기 때문에 단지 당신의 도구를 보여줍니다 100%.도구를 사용하여 위해 무엇을 할 수 있지만 떨어지지 않으로의 함정시키는 도구를 정의합니다.

Java classfile 형식으로 모든 방법은 주석으로 테이블 mapping 코드 오프셋을 선 숫자입니다.이 경우에는 닫는 중괄호를 생성하지 않는 모든 바이트 코드,따라서 그것은 적용되지 않습니다.이 문제는 불완전한 대응 사원 및 바이트 코드.그것에 의해 처리되어야 하 검사 도구는,이것을 인식하는 라인으로 비 코드입니다.

내가 알고 있는 은 유사한 문제입니다. 요금이 훨씬 더 나은,그러나 상업적(확실하지 않다면 그것은 이러한 사례를 지능적으로 처리하도).는 경우 사용할 아이디어,당신이 시도해야한다는 그들의 새로운 범위 구현 -그것은 아주 좋고 활발한 개발.

이전 질문에는 Cobertura 가 이미 고정이지만,완전성을 위해 누락된 범위에서"}"에 의해 발생했 내부의"자동으로 마지막으로"block.

참조 코드 이:

try {
    System.exit(0);
} catch (final SecurityException exception) {
    exception.printStackTrace();
} finally {
    // noop
}

다행히도 이것은 더 이상 일어나는 일에 대한 몇 가지 버전이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top