나는 질문에 응답하기 전에 내가 먼저 설명하고 싶은 코드 커버리지에 대한 몇 가지 애완 동물 이론을 가지고있다.
우선 몇 가지 상황 :
- 이 Code coverage의 많은 종류가 있습니다,하지만 난 단지 라인 범위에 대해 이야기하는거야,하지만 당신은 다른 종류를 대체 할 수 있어야한다.
- 질문 : "... 누군가가 단위 테스트 및 코드 적용 범위 하락없이 새 코드를 확인합니다 ..."비슷한 내용 : "일부 사람 (리팩터링/중복 제거/알고리즘 대체)으로 테스트를 제거합니다. 코드 및 적용 범위가 감소합니다. "
- 범위는 단일 테스트를 실행 한 결과로 측정해야합니다. 즉, 응용 프로그램을 실행하고 외부에서 자극함으로써가 아닙니다.
- 범위의 백분율은 오도 된 것입니다.
나는 이것에 대해 생각해 보았고 실제로 얼마나 많은 코드 행이 다루어지지 않는지 알고 싶다.
이 답변에 대한 내 코멘트보기 : Ensure minimal coverage on new Subversion commits
- 범위는 가능한 한 높아야합니다. "... 타기를 허용하지 않고 개선 ..."
- 100% coverage is possible.
도서관에도 불구하고 해봤습니다.
난 당신이 지금까지 코드 커버리지에 관한 한 두 부문에 코드를 분할해야 theory 있습니다
- 모든 코드가 100 % 적용되는 부문.
- 코드가 적용되지 않는 부분.
어느 부서가 여러 프로젝트로 구성 될 수 있지만 부서의 구성원은 파일이어야합니다 (Java와 C# 모두 소스 파일을 가짐). 전체 파일 폴더가 바람직합니다. 첫 번째 부문에는 한 세트의 프로젝트를, 두 번째 부문에는 한 세트의 프로젝트를 가질 수 있습니다.
이제는 범위 부족 보고서가 두 번째 부문의 줄 수에 불과합니다.
작동 모드는 코드를 테스트하면서 코드가 100 % 적용 범위에 속하는 경우에만 사용해야합니다.그러나 두뇌가 테스트 할 수있는 방법을 찾지 못하는 까다로운 코드 조각을 발견하면 테스트되지 않은 비트가 두 번째 부분으로 이동하도록 리팩터링해야합니다. 또는 브레인 웨이브를 얻을 수 있으며 0 % 이상으로 두 번째 부분을 올리는 테스트를 찾을 수 있습니다. 이때 첫 번째 부분으로 코드를 리팩토링합니다. 이것은 모든 체크인이 나의 이론적 인 불변성을 유지한다는 것을 의미합니다. 이제
, 다시 질문 :
이 아니, 나는 JetBrains 웹 사이트에서 간단히 살펴에서 모두 떨어져 인 TeamCity를 모르는, 그래서 범위를 업데이트하는 방법을 모르겠지만, 내 이론에 따르면 100 % 또는 아무것도 없어야하므로 프로젝트 당 제한을 설정할 수 있습니까? 가능한 경우 100 % 고정 한도가 첫 번째 부서에서 작동합니다.
두 개의 부서를 가질 수있는 경우 두 번째 부서의 코드 메트릭 라인을 사용하여 자동 업데이트를 수행하려는 경우 점차적으로 낮아집니다.
+1 정말 환상적인 답변입니다! – bragboy
+1 좋은 답변 - 필자는 비슷한 이론을 가지고 있으며 많은 코드 라이브러리에서 100 % 적용 범위를 달성했습니다. –