0

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

我现在已经对此进行了 2 或 3 次认真的尝试,但无法让它发挥作用。

我正在使用 MSTest 9、NCover 2.1 和 TypeMock 4.1。

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

干杯垫

4

1 回答 1

2

好吧,它有点晚了,但这是后代的答案......
几个关键点:

  • 在较旧版本的 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\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>
于 2009-02-26T15:13:12.747 回答