Файл покрытия кода MSTest слишком большой, Как выборочно создавать покрытие кода - PullRequest
1 голос
/ 28 декабря 2011

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

1 Ответ

0 голосов
/ 29 декабря 2011

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

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

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

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

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

...