Visual Studio Team Services - 发布管理无法定位测试

8
在Release Management中使用Visual Studio测试任务时,发布总是会返回:
“未找到与模式匹配的测试程序集”
目前“测试程序集”设置为:**\*test*.dll;-:**\obj\**
我已经尝试了多个默认值,例如$(System.DefaultWorkingDirectory)等。
我能找到的文档要么不符合现有任务布局(例如发布构建工件屏幕不再包含“内容”框),要么是针对本地Visual Studio 2015,或者特别与构建有关。
我阅读并尝试了以下内容:
更新:
我在构建中添加了一步:复制和发布test.dll。它们现在被找到,但由于缺少其他代码,它们都失败了。
更新 II:
我的3_Run_Tests.log文件包含以下线索:
“调用测试类的初始化方法时出错…要运行与桌面交互的测试,必须设置测试代理作为交互式进程运行。”
“测试运行部署问题:测试容器直接或间接引用的程序集或模块...未找到。”
因为上述原因,我将接受 @eddie-msft 的答案。

你能确认测试程序集是否作为构件被发布,并且是否被推送到 $(Agent.ReleaseDirectory) 文件夹中吗? - Daniel Mann
1
哪个测试框架? - jessehouwing
无论使用 Visual Studio Test 任务的默认设置。 - Joshua Drake
@JoshuaDrake 这个问题是“你的测试使用哪个测试框架?” - Daniel Mann
@JoshuaDrake:您能澄清一下第一个“UPDATE”的含义吗(“添加了一个步骤来复制和发布测试dlls”。我无法找到我的测试,但我从未看到Microsoft在VSTS的单元测试中记录过这个复制和发布步骤。您复制了什么,将其复制到哪里了? - PatrickSteele
显示剩余5条评论
2个回答

5

您需要确保要测试的项目的编译文件也已经被复制并发布到与测试程序集相同的路径下。如果只复制了测试程序集,则测试将失败。

我假设您正在处理一个C#项目,在复制测试程序集的步骤中,您可以设置复制内容如下:

**\YourTestProjectName\bin\$(BuildConfiguration)

这个答案涉及到原始问题和更新。原始问题只是没有复制测试dll,然而,正如Eddie - MSFT指出的那样,仅仅这样还不够。 - Joshua Drake
@Eddie-MSFT 我有一个包含 8 个项目的解决方案,我需要 ProjectProject.WebProject.Web.Tests。1 - 恢复 NuGet,2 - 构建 Project,3 - 构建 Project.Web,4 - 构建 Project.Web.Tests,5 - 复制文件,6 - 测试程序集。在构建时,我有这些 MSBuild 参数/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\ "; 复制 - 来源:$(build.sourcesdirectory),内容:**\bin\$(BuildConfiguration)\**,目标:$(build.artifactstagingdirectory) - Vlad
通常,我的文件夹结构如下:SolutionFolder(Project, Project.Web, Project.Web.Test, 等等...),本地机器上的测试 .dll 可以在这里找到:SolutionFolder\Project.Web.Tests\bin\(Release|Debug)\Project.Web.Tests.dll - Vlad
@VladislavKasianenko 这个设置会得到什么结果? - Eddie Chen - MSFT
@VladislavKasianenko 这很奇怪。设置应该是有效的。您是否检查了构建日志以查看测试程序集是否在构建期间生成?如果可能的话,您能否分享整个构建日志。 - Eddie Chen - MSFT
显示剩余7条评论

0

我遇到了类似的问题。在构建多个项目时,测试文件找不到。

没有找到与模式*test*.dll;-:\obj**

解决方法:添加额外的构建步骤“构建解决方案”和“复制文件到”。该构建指向带有自动化测试的VS解决方案文件。“复制文件到”保持默认设置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接