题
有人让 Nover、TypeMock 和 MSTest 一起工作吗?如果是这样怎么办?
我现在已经对此进行了两三次认真的尝试,但就是无法使其发挥作用。
我正在使用 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\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>
不隶属于 StackOverflow