我是TeamCity的新手,我正在尝试将其配置为在解决方案中构建和运行所有单元测试。它对于没有使用TypeMock的测试工作正常,但对于那些使用TypeMock的测试失败了。
我在typemock.org和stackoverflow上也经历了很多帖子,但我没有得到任何明确的一步一步的解决方案来解决这个问题。
我所做的是
添加了我正在使用的程序集列表
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\MsTest.exe
C:\TeamCity\AutoDeploy\TypeMock.dll
C:\TeamCity\AutoDeploy\TypeMock.MSBuild.dll
C:\BuildAgent\work\d0c2681a8633b717\www.Domain.Tests\bin\Release\qqq.Domain.Tests.dll
我缺少一些构建配置,但我不确定我是否必须为MSTest做这个
答案 0 :(得分:3)
免责声明我在Typemock工作。
在您的情况下,最好的解决方案是使用某种类型的构建脚本,如MSBuild或nant
如果您没有使用构建脚本,则可以将TeamCity进程设置为在启用Isolator的情况下运行。以下是执行此操作的步骤:
重复上述步骤,但将环境变量的名称更改为COR_PROFILER,将值更改为{B146457E-9AED-4624-B1E5-968D274416EC}
这将导致TeamCity及其子进程(如msbuild)使用Isolator进行概要分析。 同样,我不认为这是最好的解决方案,但它应该为你做好工作。
答案 1 :(得分:0)
我认为你是因为这个错误,因为你没有配置TypeMock来使用MSTest来运行测试。如果您没有在TeamCity Build Agent计算机中执行此操作,请执行以下步骤:
Profilers/Code Coverage
选项卡下打开的新窗口中,选中复选框Show only available profilers
,然后在上面的下拉列表中列出NCover(假设您使用NCover进行分析单元测试用例覆盖率和所有)。Link with TypeMock Isolator
。通过这个TypeMock Isolator将被配置为配置单元测试,并且我认为你的TypeMock禁用问题将得到解决我希望。
修改强>
抱歉错误点。如果您在构建中使用NCover等分析器,上述内容将对您有所帮助。
您应该使用以下MSBuild来使用MSTest和TypeMock运行测试:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="RunTests" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="NCover.MSBuildTasks.NCover" AssemblyFile="C:\Program Files\NCover\Build Task Plugins\NCover.MSBuildTasks.dll" />
<Import Project ="C:\Program Files (x86)\Typemock\Isolator\6.1\TypeMock.MSBuild.Tasks" />
<PropertyGroup>
<MSTest>"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe"</MSTest>
</PropertyGroup>
<Target Name ="RunTests">
<TypeMockStart Target="3.5" />
<Exec ContinueOnError="true" Command='$(MSTest) /noisolation "/testcontainer:C:\continuousintegration\root\CTM_VPOFFICEClassLibraries\CTM.VPOffice\CTM.VPOffice Unit Testing\bin\Release\CTM.VPOffice Unit Testing.dll"' />
<TypeMockStop />
</Target>
</Project>
您可以忽略上述示例中与NCover相关的内容,如果您的构建过程中没有测试性能分析,则忽略隔离器配置步骤。