6

我们正在使用 TFS 2012(更新 3)和 VS 2013 RC。我们有一个 .sln 文件,其中包含两个项目 - 主项目/程序集和一个 UnitTest 项目。单元测试项目正在利用 Microsoft Fakes。在 Visual Studio(我们使用 Premium)中,我可以编译 .sln 并运行测试。在构建代理上,我可以使用 Visual Studio 编译和构建 .sln 并运行测试。但是当我们对构建进行排队时,它无法构建 UnitTest 项目,因为它找不到 Fakes 程序集。它似乎不像在 Visual Studio 中构建时那样动态创建它。通常在 VS 中创建 fakes dll 并将其放在 FakeAssemblies 文件夹中。构建失败后,我可以登录并看到它根本没有创建 FakeAssemblies 目录。

错误是... C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (1605):无法解析此引用。找不到程序集“System.Web.Http.5.0.0.0.Fakes”。检查以确保该程序集存在于磁盘上。如果您的代码需要此引用,您可能会遇到编译错误。

我们的构建使用默认模板 - 我们选择构建 .sln(具有主程序集和单元测试项目)。我们不应该在那个 .sln 中包含 UnitTest 吗?在构建过程中是否应该以其他方式编译 UnitTest?

有谁知道为什么构建不会像 Visual Studio 那样通过动态创建 Fake 程序集?

谢谢!!!

4

1 回答 1

2

我遇到了同样的问题,但使用 TFS 2012 和 VS 2012 并通过在 TFS Server 中安装 Visual Studio 解决了这个问题。所以如果你已经在那里安装了 VS,这个建议对你没有帮助。

首先,我尝试将该程序集从本地计算机中的文件夹复制到 TFS 服务器中的同一文件夹中。它位于c:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\Microsoft.QualityTools.Testing.Fakes.dll.

问题解决了,成功搭建了一个测试项目,但是每次使用Fake的测试都没有通过。有一个例外:

Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationException:UnitTestIsolation 检测无法初始化。请重新启动 Visual Studio 并重新运行此测试。

我没有时间,决定做第二步,在 TFS 机器上安装 Visual Studio,所有问题都消失了

于 2014-02-04T06:39:51.137 回答