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

发布于 2024-08-18 17:11:59 字数 1235 浏览 1 评论 0原文

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

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

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

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

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

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

TESTTOOLSTASK:警告:测试运行部署问题:无法获取测试指定的部署项目“电子邮件模板\OrderConfirmation.txt”(输出目录“电子邮件模板”)的文件“EmailServiceTest.EnqueueTest”:System.IO.DirectoryNotFoundException:找不到路径“持续集成构建\二进制文件\持续集成测试\电子邮件模板\OrderConfirmation.txt”的一部分。

TESTTOOLSTASK:警告:测试运行部署问题:无法获取测试“Email.Tests.EmailServiceTest.EnqueueTest”指定的部署项目“E-mail Templates\OrderConfirmation.htm”(输出目录“E-mail Templates”)的文件:System.IO.DirectoryNotFoundException:找不到路径“持续集成构建\二进制文件\持续集成测试\电子邮件模板\OrderConfirmation.htm”的一部分

TESTTOOLSTASK:警告:测试运行部署问题:程序集或模块“服务”未找到测试容器“\持续集成构建\二进制文件\持续集成测试\services.order.supplierintegration.tests.dll”直接或间接引用的“.Order_Accessor”。

We have been using TeamBuild and test for our continuous integration build for about 4 months and this issue just popped up the other day in one of our test assemblies when running tests on one of our test assemblies on the build server only.

{NameSpace}.Order_Accessor, Version=0.0.0.0, Culture=neutral, PublicKeyToken='{xxx}' or one of its dependencies. The system cannot find the file specified.

This is not being caused by problems with Publicize.exe noted elsewhere. The unit tests run fine locally and the generated assembly does get created.

The part that is confusing is that we use generated private accessor assemblies in numerous projects including the one with this issue above without any problems. Investigating this issue further, the generated assembly never gets copied to the TestResults//Out directory which appears to be the problem. I determined this was the issue by adding the assembly from SolutionRoot using the TestRunConfig deployment settings which results in an assembly manifest does not match error.

I am wondering if anyone has had issues with these assemblies being copied properly. We are running TeamSystem 2008 on Windows Server 2008 if that helps.

Below is the test run deployment error for the file in question as well
Run has the following issue(s):

TESTTOOLSTASK : warning : Test Run deployment issue: Failed to get the file for deployment item 'E-mail Templates\OrderConfirmation.txt' (output directory 'E-mail Templates') specified by the test 'EmailServiceTest.EnqueueTest': System.IO.DirectoryNotFoundException: Could not find a part of the path 'Continuous Integration Build\Binaries\Continuous Integration Test\E-mail Templates\OrderConfirmation.txt'.

TESTTOOLSTASK : warning : Test Run deployment issue: Failed to get the file for deployment item 'E-mail Templates\OrderConfirmation.htm' (output directory 'E-mail Templates') specified by the test 'Email.Tests.EmailServiceTest.EnqueueTest': System.IO.DirectoryNotFoundException: Could not find a part of the path 'Continuous Integration Build\Binaries\Continuous Integration Test\E-mail Templates\OrderConfirmation.htm'

TESTTOOLSTASK : warning : Test Run deployment issue: The assembly or module 'Services.Order_Accessor' directly or indirectly referenced by the test container '\continuous integration build\binaries\continuous integration test\services.order.supplierintegration.tests.dll' was not found.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云淡风轻 2024-08-25 17:11:59

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

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

  1. Publicize 工具(或用于生成程序集的任何工具)配置为将输出复制到 ($BinariesRoot)Continously Integration Test
  2. 有一些规定在团队构建类型中将 .htm 和 .txt 文件复制到($BinariesRoot)持续集成测试

Looks like your TestRunConfig deployment expects that the files are in "Continuous Integration Build\ Binaries\"

I've highlighted the "Binaries" part for a reason. This is a folder the $BinariesRoot property points to (unless overridden), and it is used by the compiler. Therefore, I'd suggest you double-check that:

  1. The Publicize tool (or whatever tool you use to generate the assemblies) is configured to copy the output into ($BinariesRoot)Continuous Integration Test
  2. There are provisions in the team build type to copy the .htm and the .txt files to ($BinariesRoot)Continuous Integration Test
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文