Файл покрытия кода MSTest слишком велик, Как выборочно генерировать покрытие кода

У меня есть настройка покрытия кода MSTest в моем проекте Visual Studio. Однако, когда выполняется покрытие кода, он генерирует слишком большой файл покрытия (покрытие данных). Причина в том, что он сканирует все dll, сторонние библиотеки. В моем проекте есть решение на C ++, и оно генерирует покрытие кода для всех методов в файлах заголовков. Обратите внимание, что в моей настройке тестов (local.testsettings, которая в настоящее время активна) я выбрал только один xyz.dll (тот, который я хочу получить для покрытия кода). Однако окончательное покрытие кода содержит информацию о покрытии кода, от которой зависит xyz.dll. Как настроить MSTest так, чтобы код не выходил за пределы xyz.dll? Примечание. Наличие большого файла data.coverage вызывает проблемы, когда я пытаюсь сгенерировать отчеты в формате xml с использованием подключения Hudson emma. Окончательный xml составляет около 750 МБ


person Sriwantha Attanayake    schedule 28.12.2011    source источник


Ответы (1)


То, как инструмент тестового покрытия представляет данные, которые он записывает (местоположения зондов, попадания зондов), очевидно, влияет на управляемость собранных данных тестового покрытия.

Я не могу говорить о том, как MS кодирует эти данные, но ясно, что вы недовольны результатом. Я согласен, что 750 Мб выходных данных кажутся чрезмерными.

Проблема может заключаться в том, что вы просто инструментируете каждый метод / функцию, когда вам нужна только DLL. Я предлагаю вам поискать переключатель для управления инструментами. Я не могу вам помочь с инструментом MS.

Наше C ++ Test Coverage позволит вам указать только файлы, которые вы хотите обработать. Он действительно создает файл местоположения зонда с одной записью на зонд, но его размер пропорционален количеству инструментария, и это не громоздкий XML-файл. Миллион строк инструментального кода создает файл местоположения зонда размером в несколько мегабайт. Во время выполнения вы производите данные о попадании зонда; объем экспортированных данных измеряется в байтах множественного числа только для каждого зонда в худшем случае и намного меньше, если ваше покрытие низкое или высокое. Для того же миллиона строк я ожидал бы, что это будет еще один мегабайт.

Скорее всего, потребуется немного больше усилий для настройки нашего инструмента для работы с DLL; У MS есть то преимущество, что он контролирует компилятор, а у нас нет. Кажется, это небольшая цена за полезный ответ.

person Ira Baxter    schedule 29.12.2011