NCover, TypeMock и MSTest - PullRequest
       25

NCover, TypeMock и MSTest

0 голосов
/ 05 сентября 2008

у кого-нибудь есть NCover, TypeMock и MSTest для совместной работы? и если да, то как.

У меня было 2 или 3 серьезных попытки сделать это сейчас, и я просто не могу заставить его работать.

Я использую MSTest 9, NCover 2.1 и TypeMock 4.1.

В идеале я хотел бы запустить их из задачи MSBuild.

Приветствие Мат

1 Ответ

2 голосов
/ 26 февраля 2009

Ну, это немного поздно, но вот ответ для будущих поколений ...
Несколько ключевых моментов:

  • В более старой версии 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>
...