使用TeamCity和Fakes Framework构建和测试

Jan*_*n_V 5 c# msbuild teamcity visual-studio microsoft-fakes

我们正在运行一台TeamCity 8.1.4 buildserver,并在机器上安装了VS2013.

我最近推出了依赖于Microsoft Fakes Framework的测试.因此,我必须添加一些对新Fake组件和Microsoft.VisualStudio.TestTools.UnitTesting组件的引用.这一切都在我的本地开发机器上运行良好.

现在,当我尝试在TeamCity服务器上构建解决方案时,会引发以下错误:

SomeDirectory\Processors\ProcessorTests.cs(3,27):错误CS0234:名称空间'SomeDirectory.Database'中不存在类型或命名空间名称'Fakes'(您是否缺少程序集引用?)

SomeDirectory\Processors\ProcessorTests.cs(7,66):错误CS0234:名称空间'SomeDirectory.Service.Processor.Report.Processors'中不存在类型或命名空间名称'Fakes'(您是否缺少程序集引用?)

SomeDirectory\Processors\ProcessorTests.cs(9,17):错误CS0234:名称空间"Microsoft"中不存在类型或命名空间名称"QualityTools"(您是否缺少程序集引用?)

我有点理解前两个错误,因为我没有在SVN中提交Fake程序集,因此无法找到它们.我也不想提交这些文件,因为构建服务器应该自己生成这些文件.该BuildAction假货,文件设置为Fakes.

我的猜测是在第三个错误中遇到它们的起源的前两个错误.据我所知,QualityTools命名空间位于程序集中Microsoft.VisualStudio.TestTools.UnitTesting.

我尝试用几种设置解决这个问题.我配置的原始构建步骤是:

跑步者类型= Visual Studio(sln)

Visual Studio = Microsoft Visual

Studio 2013

我把它改成了:

跑步者类型= MSBuild

MSBuild版本= Microsoft Build Tools 2013

MSBuild ToolsVersion = 12.0

我也尝试过.NET 4.5使用ToolsVersion 的MSBuild版本4.0.

所有这些设置都会导致相同的错误.

您可以理解,此解决方案目前无法编译,因此我无法确定测试是否会运行.我已经找到关于如何使用TeamCity配置测试步骤的帖子,但这是下一步.

有人知道如何解决TeamCity和VS2013的这些问题?

编辑

我已经检查TestTools.UnitTesting过文件系统上是否存在程序集.这个组件存在,所以这应该不是问题

编辑2

糟糕,我误读了第三条错误消息.我应该一直在寻找Microsoft.QualityTools.Testing.Fakes程序集,因为它说它无法解析QualityTools命名空间.检查路径后,Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies我可以确认文件系统上没有dll.

我已经手动将它复制到构建服务器,看看接下来会发生什么.

编辑3

Microsoft.QualityTools.Testing.Fakes程序集复制到构建服务器后,解决方案就像魅力一样编译.但是,现在我收到熟悉了

无法从COR_PROFILER_PATH和COR_PROFILER环境变量解析探查器路径.

我之前在TFS2012服务器上看过这个.这意味着它无法处理垫片,我们不得不升级到TFS2013.

我刚刚登录buildserver,看到VS2013版本已过期.这也许是它无法正常工作的原因.已安装的VS2012安装版本为11.0.50727.1,因此未安装Update 3.我将与我的同事讨论是否可以更新.希望这将解决我所面临的假货和垫片问题.

解决 显然有人认为在构建服务器上安装VS2013 Professional很有趣.因此假货无法运行,因为它是高级功能.安装了高级版,现在一切都像魅力一样.

Dej*_*kić 2

假货不会与 MSTest 一起运行,你必须使用 VSTest.Console

通常(对于本例中的 VS2012)它位于C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe

http://confluence.jetbrains.com/display/TW/VSTest.Console+Runner上也有可用的运行程序,但如果这不起作用,请“手动”运行可执行文件,这里是运行vstest.console.exe http://msdn的参考.microsoft.com/en-us/library/jj155796.aspx

如果您在代理计算机上安装了 VS2013(Pro 版包含假冒产品,express 则没有),它应该可以正常编译。您是否在您的开发机器上尝试过干净结账?