我们一直在使用 TeamBuild 并测试我们的持续集成构建大约 4 个月,而前几天在我们的一个测试程序集中仅在构建服务器上对我们的一个测试程序集运行测试时,这个问题才突然出现。
{NameSpace}.Order_Accessor, Version=0.0.0.0, Culture=neutral, 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 属性指向的文件夹(除非被覆盖),它由编译器使用。因此,我建议您仔细检查:
($BinariesRoot)Continuous Integration Test
($BinariesRoot)Continuous Integration Test
关于unit-testing - 团队 build : Cannot find generated private accessor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2103209/