Вопрос
есть ли у кого-нибудь возможность совместной работы NCover, TypeMock и MSTest?и если да, то как.
У меня было 2 или 3 серьезные попытки сделать это, и я просто не могу заставить это работать.
Я использую MSTest 9, NCover 2.1 и TypeMock 4.1.
В идеале я хотел бы запускать их из задачи MSBuild.
Приветствия коврик
Решение
Что ж, уже немного поздно, но вот ответ для будущих поколений...
Несколько ключевых моментов:
- В более старой версии Typemock (например, 4.1) вам нужна корпоративная лицензия для запуска Typemock с NCover.В текущей версии все лицензии имеют одинаковый список функций.
- Чтобы запустить Typemock с другими профилировщиками, вам необходимо использовать функцию ссылки Typemock.В вашем случае вы можете сделать это с помощью задачи Typemock MSBuild.
- Вам нужно запустить MSTest с аргументом /noisolation.Это не позволит MSTest запустить процесс VSTestHost.exe, который фактически будет запускать ваши тесты.Это создает проблему с включением переменных среды, необходимых для работы профилировщиков.
В приведенном ниже примере я запускаю тесты в Tests.dll и запрашиваю отчет о покрытии ClassLibrary.dll.
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="RunTests" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project ="c:\Program Files\Typemock\Isolator\5.2\TypeMock.MSBuild.Tasks" />
<PropertyGroup>
<NCOVER>"E:\src\TypeMock\Build\Binaries\NCover\NCover 2.0\NCover.Console.exe"</NCOVER>
<MSTest>"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe"</MSTest>
</PropertyGroup>
<Target Name ="Test">
<TypeMockStart Target="2.0" Link ="NCover2.0"/>
<Exec ContinueOnError="true" Command="$(NCOVER) //a ClassLibrary $(MSTest) /noisolation /testcontainer:E:\src\TestNcover3\MSBuildTest\bin\Debug\Tests.dll" />
<TypeMockStop/>
</Target>
</Project>
Не связан с StackOverflow