我们已经使用TeamBuild进行连续集成构建的测试了大约4个月,而前一天,仅在构建服务器上对其中一个测试程序集运行测试时,这个问题就突然出现在我们的一个测试程序集中。

{NameSpace} .Order_Accessor,版本= 0.0.0.0,区域性=中性,PublicKeyToken =“{xxx}”或其依赖项之一。该系统找不到指定的文件。

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

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

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

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

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

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

TESTTOOLSTASK:警告:测试运行部署问题:测试容器“\Continuous Integration build\binaries\Continuous Integration test\services.order.supplierintegration.tests.dll”直接或间接引用的程序集或模块“Services.Order_Accessor”不是成立。

最佳答案

看起来您的TestRunConfig部署期望文件位于“Continuous Integration Build\ Binaries \”中

我之所以强调“二进制文件”部分是有原因的。这是$ BinariesRoot属性指向的文件夹(除非被覆盖),并且由编译器使用。因此,建议您仔细检查以下内容:

  • Publicize工具(或用于生成程序集的任何工具)配置为将输出复制到($BinariesRoot)Continuous Integration Test
  • 团队构建类型中有一些规定将.htm和.txt文件复制到($BinariesRoot)Continuous Integration Test
  • 关于unit-testing - 团队 build : Cannot find generated private accessor,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2103209/

    10-13 06:11