unit-testing - 团队 build : Cannot find generated private accessor

标签 unit-testing tfs mstest tfsbuild

我们一直在使用 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 属性指向的文件夹(除非被覆盖),它由编译器使用。因此,我建议您仔细检查:

  • 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/

    相关文章:

    encryption - 加密连接字符串 IIS 7

    c# - 如何防止 TFS 2013 锁定二进制文件?

    c# - 使用 Moq 框架模拟方法不会返回预期结果

    c# - 如何编写单元测试的输出?

    python - 如何测试需要文件存在的方法?

    c# - 我如何强制对 Team Foundation 进行有意义的 checkin 评论?

    .net - 是否可以在所有测试运行之前执行一次代码?

    c# - Selenium Webdriver 不尊重 cookie 或缓存图像

    Angular Testing : mock a HttpResponse containing a blob

    php - Laravel 单元测试 - 根据测试方法更改配置值