【问题标题】:VSTS Test Assemblies - No test assemblies foundVSTS 测试程序集 - 未找到测试程序集
【发布时间】:2018-08-17 04:24:50
【问题描述】:

我试图在我的解决方案中运行一些硒测试,这些测试位于一个名为 SA.SEPA.Web.UI.Selenium 的项目中,作为 VSTS 中构建定义的一部分,但它失败了运行 Visual Studio 测试 任务并出现错误...

No test assemblies found matching the pattern: **\*Selenium*.dll.

搜索文件夹设置为 - $(System.DefaultWorkingDirectory)

前面的任务是一个 nuget 恢复和构建解决方案

谁能帮忙?

【问题讨论】:

  • 您是否真的在构建与该模式匹配的程序集?与$(System.DefaultWorkingDirectory) 的值相比,您的构建输出文件夹是什么?
  • 抱歉,我对此完全陌生,所以不明白这个问题。如何找出我的构建输出文件夹在 VSTS 上的位置?在本地,我认为我之后的单元测试文件位于 ..\SA.SEPA.Web.UI.Selenium\bin\debug\SA.SEPA.Web.UI.Selenium.dll
  • 在构建过程中应该是同一个文件夹,假设您在构建中使用了与本地使用相同的构建平台和配置
  • 你能分享一下OneDrive上的详细构建日志吗? (打开构建并单击以 zip 格式下载所有日志)
  • 你能把详细日志贴在这里吗?

标签: selenium tfs azure-devops


【解决方案1】:

您指定 $(System.DefaultWorkingDirectory) 作为搜索文件夹。默认情况下(除非被覆盖),它指向代理上的 Source 文件夹。 如果您指示 MSBuild(使用 OutDir 参数)在特定位置输出程序集,那么您应该使用该位置。

编辑:如果这是一个本地代理,如果您想执行任何 UI 测试,它也应该以交互模式(而不是服务)运行

【讨论】:

  • 嗨科斯塔斯。这个“代理上的源文件夹”在哪里,我如何能够检查内容?我不相信我已经指示 MSBuild 做任何事情。我确实希望运行 UI 测试,但它们包含一个远程链接,我认为这意味着它们可能不需要以交互方式运行。谢谢
  • 所有目录(源、二进制文件、工件)都与安装代理的目录相关。这是在您第一次配置代理时完成的。如果您的代理配置为在 C:\Agent_work 下工作,那么您的第一个构建定义的源文件夹将在 C:\Agent_work\1\s
【解决方案2】:

我遇到了同样的错误,但原因不同,所以我在这里添加我的解决方案。

我在尝试使用 VSTS 作为构建的一部分运行 Selenium 测试时收到“未找到测试程序集”错误。

我的问题原来是测试程序集没有签入变更控制(git,通过 VS2017),因此不是构建的一部分。默认情况下,在我最初的签入过程中,包含测试程序集的文件夹被忽略了。一旦我将这些文件夹添加到我的存储库中,构建就可以找到测试并运行它们。

【讨论】:

  • test assemblies 是什么意思?您不需要将二进制文件提交到 git...
  • 那么可能是我的配置错误。实际上我已经有一段时间没有参与这个项目了,但如果我没记错的话,MS Build 抱怨它需要测试程序集。一旦我将这些文件夹添加到我的远程存储库中,它就开始工作了。
  • @knocte 是对的。您需要由构建服务器构建这些文件,而不是签入它。否则,您每次都必须手动签入该 dll,而不是每次进行更改和提交时都应编译的源文件。
猜你喜欢
  • 1970-01-01
  • 2018-05-19
  • 2014-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多