Основная проблема заключается в том, что файл результатов покрытия кода, который создает MSTest, находится в двоичном формате. Однако, предполагая, что в VS2010 ситуация не сильно изменилась, вы сможете использовать эту утилиту для преобразования ее в файл XML:
http://codeexperiment.com/file.axd?file=2008%2f9%2fCodeCoverageConverter.zip
ПРИМЕЧАНИЕ. Возможно, вам потребуется перекомпилировать его для версии Microsoft.VisualStudio.Coverage.Analysis.dll для VS2010.
Затем вы можете использовать предпочитаемый метод анализа этого XML-файла, выполняя математические расчеты для каждой из инструментальных сборок, чтобы рассчитать общий коэффициент покрытия. XPaths, которые вас интересуют (по крайней мере для VS2008):
/CoverageDSPriv/Module/LinesCovered
/CoverageDSPriv/Module/LinesNotCovered
Если вы хотите выполнить этот последний шаг в чистом MSBuild, то задач 'XmlRead' и 'Math', содержащихся в библиотеке задач сообщества MSBuild, должно быть достаточно:
http://msbuildtasks.tigris.org/
Получив общее соотношение в свойстве MSBuild, вы просто используете условную задачу, чтобы прервать сборку, если это число меньше желаемого порога.
<Error Condition=" $(CodeCoverageRatio) < $(MinCodeCoverage) "
Text="Code Coverage is below required threshold." />