NCover,TypeMock和MSTest

时间:2020-03-05 18:48:06  来源:igfitidea点击:

有没有人让NCover,TypeMock和MSTest可以一起工作?如果是这样的话。

我现在已经进行了2到3次认真尝试,但无法使其正常工作。

我正在使用MSTest 9,NCover 2.1和TypeMock 4.1.

理想情况下,我想从MSBuild任务运行它们。

干杯

解决方案

回答

有点晚了,但这是子孙后代的答案...
几个关键点:

  • 在较旧版本的Typemock(例如4.1)中,我们需要企业许可证才能在NCover上运行Typemock。在当前版本中,所有许可证都具有相同的功能列表。
  • 为了与其他探查器一起运行Typemock,我们需要使用Typemock的链接功能。我们可以使用Typemock MSBuild任务来完成。
  • 我们需要使用/ noisolation参数运行MSTest。这将阻止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.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>