团队构建:找不到生成的私有访问者

时间:2010-01-20 16:52:44

标签: unit-testing tfs mstest team-build

我们一直在使用TeamBuild并测试我们的持续集成构建大约4个月,这个问题刚刚在我们的一个测试程序集中弹出,只是在构建服务器上的一个测试程序集上运行测试。 / p>

{NameSpace} .Order_Accessor,Version = 0.0.0.0,Culture = neutral,PublicKeyToken ='{xxx}'或其依赖项之一。系统找不到指定的文件。

这不是由其他地方提到的Publicize.exe问题引起的。单元测试在本地运行正常,生成的程序集确实已创建。

令人困惑的部分是我们在许多项目中使用生成的私有访问器程序集,包括上面有此问题的项目,没有任何问题。进一步调查此问题,生成的程序集永远不会被复制到TestResults // Out目录,这似乎是问题所在。我通过使用TestRunConfig部署设置从SolutionRoot添加程序集来确定这是问题,这导致程序集清单与错误不匹配。

我想知道是否有人在正确复制这些程序集时遇到问题。如果有帮助,我们在Windows Server 2008上运行TeamSystem 2008。

以下是相关文件的测试运行部署错误 运行有以下问题:

TESTTOOLSTASK:警告:测试运行部署问题:无法获取测试'EmailServiceTest.EnqueueTest'指定的部署项'E-mail Templates \ OrderConfirmation.txt'(输出目录'电子邮件模板')的文件: System.IO.DirectoryNotFoundException:找不到路径'Continuous Integration Build \ Binaries \ Continuous Integration Test \ E-mail Templates \ OrderConfirmation.txt'的一部分。

TESTTOOLSTASK:警告:测试运行部署问题:无法获取测试'Email.Tests.EmailServiceTest指定的部署项'电子邮件模板\ OrderConfirmation.htm'(输出目录'电子邮件模板')的文件.EnqueueTest':System.IO.DirectoryNotFoundException:找不到路径的一部分'Continuous Integration Build \ Binaries \ Continuous Integration Test \ E-mail Templates \ OrderConfirmation.htm'

TESTTOOLSTASK:警告:测试运行部署问题:程序集或模块'Services.Order_Accessor'由测试容器'\ continuous integration build \ binaries \ continuous integration test \ services.order.supplierintegration.tests.dll直接或间接引用'找不到。

1 个答案:

答案 0 :(得分:4)

看起来您的TestRunConfig部署期望文件位于“持续集成构建\ 二进制文件”中

我突出了“二进制”部分是有原因的。这是$ BinariesRoot属性指向的文件夹(除非被覆盖),它由编译器使用。因此,我建议你仔细检查:

  1. Publicize工具(或用于生成程序集的任何工具)配置为将输出复制到($BinariesRoot)Continuous Integration Test
  2. 团队构建类型中有条款将.htm和.txt文件复制到($BinariesRoot)Continuous Integration Test