У меня есть несколько любимых теорий о покрытии кода, которые я хотел бы сначала объяснить, прежде чем я отвечу на вопрос.
Сначала немного контекста:
- Есть многовиды Покрытие кода , но я буду говорить только о покрытии линии, но вы должны иметь возможность заменить другой вид.
- Из вопроса: "... кто-то проверяетв новом коде без юнит-тестов и падений покрытия кода ... », что связано с аналогичным:« Кто-то (реорганизует / устраняет дублирование / заменяет алгоритм и) удаляет проверенный код и падения покрытия ».следует измерять как результат выполнения одного набора тестов.То есть не запуская приложение и не стимулируя его извне.
- Покрытие в процентах очень вводит в заблуждение.
Я подумал об этом, и на самом деле вы хотите знать только, сколько строк кодаНЕ покрываются.
См. мой комментарий к этому ответу: Обеспечьте минимальное покрытие для новых коммитов Subversion - Покрытие должно быть как можно выше.Вопрос говорит о "... улучшении без отступления назад ..."
- Возможно 100% покрытие .
Я сделал это, хотя и с библиотекой.
У меня есть теория , согласно которой вы должны разделить свой код только на два деления в отношении покрытия кода:
- Деление, где весь кодпокрыто на 100%.
- Подразделение, где код не охватывается.
Любое подразделение может состоять из нескольких проектов, но членами подразделения должны быть файлы (учитывая, что и Java, и C # имеютисходные файлы) и желательно целые папки файлов.У вас может быть один набор проектов в первом разделе, а другой - во втором.
Теперь отчет об отсутствии покрытия - это просто число строк во втором разделе.
Режим работы должен заключаться в том, что вы тестируете свой код по ходу работы, а код просто попадает в раздел 100% покрытия.Тем не менее, если вы обнаружите сложный фрагмент кода, который ваш мозг просто не может найти способ проверить, вам следует выполнить рефакторинг, чтобы не проверенные фрагменты переместились во второе подразделение.В качестве альтернативы вы можете получить мозговую волну и найти тест, который поднимает второе деление выше 0%, после чего вы переводите код в первое деление.Это означает, что каждая регистрация поддерживает мой теоретический инвариант.
Теперь вернемся к вопросу:
Нет, я вообще не знаю TeamCity, кроме краткого обзора JetBrains *Веб-сайт 1046 *, поэтому я не знаю, как обновить покрытие, но, согласно моей теории, оно должно составлять 100% или ничего, поэтому вы можете установить ограничения для каждого проекта?Если вы можете, то для первого деления будет работать фиксированный лимит в 100%.
Если вы можете получить два деления, вы можете выполнить автоматическое обновление с метрикой строк кода для второго деления, чем ниже, тем лучше.