2008-09-05 3 views
0

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

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

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

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

Приветствия Mat

ответ

2

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

  • В старой версии 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> 
Смежные вопросы