Ncover、TypeMock 和 MSTest

发布于 2024-07-04 09:38:28 字数 201 浏览 9 评论 0原文

有人让 Nover、TypeMock 和 MSTest 一起工作吗? 如果是这样怎么办?

我现在已经对此进行了两三次认真的尝试,但就是无法使其发挥作用。

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

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

干杯 垫

has anyone got NCover, TypeMock and MSTest to work together? and if so how.

I've had 2 or 3 serious tries at this now and just can't get it to work.

I'm using MSTest 9, NCover 2.1 and TypeMock 4.1.

Ideally I would like to run them from an MSBuild task.

Cheers
Mat

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦在深巷 2024-07-11 09:38:29

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

  • 在旧版本的 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>

Well its a bit late but here is the answer for future generations ...
Few key points:

  • In older version of Typemock (like 4.1) you need an enterprise license in order to run Typemock with NCover. In the current version all licenses have the same features list.
  • In order to run Typemock with other profilers you need to use the link feature of Typemock. In your case you can do it with Typemock MSBuild task.
  • You need to run MSTest with the /noisolation argument. This will prevent MSTest to spawn VSTestHost.exe process that will actually run your tests. This creates a problem enabling the environment variables that are needed in order to let the profilers work

In the example below I'm running the tests in Tests.dll and asking for coverage report about 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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文