Можно ли использовать Opencover с изолятором TypeMock?

Я ищу инструмент покрытия .NET и пробовал PartCover с переменным успехом. Я вижу, что OpenCover предназначен для замены PartCover, но мне пока не удалось связать его с TypeMock Isolator, поэтому мой издеватель- наши тесты проходят при сборе информации о покрытии.

Я попытался воспроизвести свою настройку для Partcover, но нет определенного имени профиля, которое работало бы с аргументом «ссылка» для Isolator. Думая, что OpenCover был основан на Partcover, я попытался сказать Isolator связать с Partcover, и он не жаловался (у меня все еще был установлен Partcover), но связывание не работало - Isolator думал, что его нет.

Я пропустил шаг? Есть ли обходной путь? Или я должен ждать версию Isolator, которая дружит с OpenCover?


person Blair Conrad    schedule 14.07.2011    source источник
comment
OpenCover появился благодаря моему участию в поддержке PartCover, но я начал с нуля, и поэтому у него есть новые CLSID/PROGID и т. д.   -  person Shaun Wilde    schedule 16.07.2011
comment
Имеет смысл. Я полагаю, даже если бы вы не начинали с нуля, имело бы смысл сгенерировать новые идентификаторы, чтобы избежать путаницы.   -  person Blair Conrad    schedule 16.07.2011


Ответы (1)


Примечание. Я работаю в Typemock

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

  1. Зарегистрируйте профилировщик OpenCover, запустив runsvr32 OpenCover.Profiler.dll (для этого вам потребуются права администратора).
  2. Найдите файл typemockconfig.xml, он должен находиться в каталоге установки, обычно C:\Program Files (x86)\Typemock\Isolator\6.0.
  3. Отредактируйте файл и добавьте следующую запись в конец файла над </ProfilerList>:
<Profiler Name="OpenCover" Clsid="{1542C21D-80C3-45E6-A56C-A9C1E4BEB7B8}" DirectLaunch="false">
  <EnvironmentList />
</Profiler>

Сохраните файл, теперь у вас будет новая запись в утилите настройки Typemock под названием OpenCover. Нажмите кнопку Link, чтобы связать их. Теперь вы сможете запускать тесты с помощью OpenCover.Console.exe и Isolator. Например, вот как запустить тесты с помощью MSTest:

OpenCover.Console.exe 
-target:"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe"
-targetargs:"/testcontainer:"d:\code\myproject\mytests.dll"   
-output:opencovertests.xml

Все еще есть небольшая проблема с запуском этого с TMockRunner -link (то есть с поздним связыванием). Надо будет еще посмотреть на работе.

Надеюсь, это поможет.

person Igal Tabachnik    schedule 15.07.2011
comment
Абсолютно идеально. Большое спасибо за это. Мне и в голову не пришло, что список поддерживаемых инструментов покрытия можно настраивать. Жаль, что добавить dotCover не так просто. - person Blair Conrad; 15.07.2011
comment
Без проблем! Добавить это было довольно просто, просто добавив CLSID профилировщика, к сожалению, это не относится к dotCover/dotTrace. Хорошая новость заключается в том, что мы работали вместе с инженерами JetBrains, и поддержка dotTrace/dotCover появится в следующей версии Isolator. Если вы хотите протестировать предварительную версию, напишите нам по адресу [email protected]! - person Igal Tabachnik; 15.07.2011
comment
О, это очень интересно @hmemcpy. Я собирался порекомендовать нам начать использовать dotCover в качестве инструмента покрытия, пока не обнаружил, что он не дружит с Isolator. Я попрошу у людей денег, не купятся ли они на новые лицензии Isolator и dotCover. Если да, то я вполне могу принять ваше предложение. - person Blair Conrad; 15.07.2011