【问题标题】:No test assemblies found matching the pattern: **\*Test*.dll,!**\*TestAdapter.dll,!**\obj\**找不到与模式匹配的测试程序集:**\*Test*.dll,!**\*TestAdapter.dll,!**\obj\**
【发布时间】:2018-09-19 05:00:43
【问题描述】:

我正在尝试根据单元测试的成功在 Azure DevOps (VSTS) 中实施门控签入流程。但是,我一直收到未找到程序集的警告/错误。

##[warning]No test assemblies found matching the pattern: **\*Test*.dll,!**\*TestAdapter.dll,!**\obj\**.
##[debug]Processed: ##vso[task.issue type=warning;]No test assemblies found matching the pattern: **\*Test*.dll,!**\*TestAdapter.dll,!**\obj\**.
======================================================

我的所有单元测试都在本地测试资源管理器中的 Visual Studio 2017 中成功运行。

Azure DevOps documentation 看起来很简单,但是当我遵循它时它不起作用。

我正在使用托管 VS2017 代理。 CI 构建本身在签入 TFS 源代码控制时成功。

Log

screen 1
screen 2 screen 3 screen 4 screen 5 [屏幕 6]

【问题讨论】:

  • 你能在构建定义中分享你的 vs 测试任务吗?
  • 嗨,Shaki,我已经包含了上面的屏幕截图(1 到 7)
  • 这是一个 .Net Core 项目吗?
  • 它是 .Net Core 上的 Xamarin 多平台项目,但单元测试只是 MSTest 常规单元测试,使用 CSLA 框架。
  • 请查看我上面的日志链接,其中包含带有 system.debug=true 的完整调试日志

标签: azure-pipelines


【解决方案1】:

“旧”.NET 的文件位于 Release 文件夹中(由 BuildConfiguration 变量描述)。

.NET Core 构建包含一个额外的文件夹:

YourNamespaceHere.UnitTests > bin > Release > netcoreapp2.1 > dll's

当您添加额外的通配符时,构建将找到 unittest dll。

**\$(BuildConfiguration)\*\*unittests.dll

我已将 *Tests* 部分重命名为 *unittests.dll,因为我的项目还包含集成测试。

【讨论】:

    【解决方案2】:

    我在 .Net Core 2.1 项目中遇到了同样的问题。在您要添加的“其他控制台选项”中:

    /Framework:.NETCoreApp,Version=v2.1 /logger:console;verbosity="normal"
    

    请注意,我遇到了另一个与此无关的问题,但在同一任务上。我收到关于找不到 TestPlatform dll 的测试文件结果输出的错误。因此,我将此过滤器添加到现有的测试文件中:

    !**\*Microsoft.VisualStudio.TestPlatform*
    

    我的最终 yaml 如下所示:

    - task: VSTest@2
      displayName: 'Run Unit Tests'
      inputs:
        testAssemblyVer2: |
         **\$(BuildConfiguration)\*test*.dll
         **\$(BuildConfiguration)\**\*test*.dll
         !**\*Microsoft.VisualStudio.TestPlatform*
         !**\obj\**
        vstestLocationMethod: 'location'
        vstestLocation: 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\TestPlatform\'
        codeCoverageEnabled: True
        otherConsoleOptions: '/platform:x64 /Framework:.NETCoreApp,Version=v2.1 /logger:console;verbosity="normal" '
        platform: '$(buildPlatform)'
        configuration: '$(buildConfiguration)'
    

    【讨论】:

    • 非常感谢!一个星期以来,我一直在为此绞尽脑汁。是的,我在 .NET Core 和 Visual Studio 2017 上。让我试试这个看看。
    • 请让我知道它是否有效。如果是,请为答案投票,以便其他人可以看到这是您问题的解决方案。
    • 根据您的建议,我进一步了解了它。这是我收到的新错误的日志。 ##vso[task.complete result=Failed;]VsTest 任务失败。我有一个包含完整日志的文本文件,但不知道如何附加它。似乎不允许我在原始评论中插入链接,而不是指向我的日志文件的 CDN 链接。
    • 请查看完整的日志,我编辑了我的帖子并在上面包含了一个日志链接。
    • 也许关闭 'Microsoft.VisualStudio.TestPlatform' 的 1 个过滤器,然后重试。也许删除 CodeCoverage 参数。玩弄这些论点,然后回到这个线程或尝试更多地谷歌搜索。抱歉,我没有尝试构建 Xamarin 项目。此外,请确保您传递了用于编译的正确 .Net Core 版本。我能感觉到你在那里很糟糕。
    【解决方案3】:

    当我的单元测试任务想要运行时(我使用的是 .Net Core),我遇到了同样的问题。这似乎是一个路径命名问题。我的单元测试项目被称为

    SimpleExample.UnitTests

    但是YAML文件中“DotNetCoreCLI@2”任务的路径被设置为

    '**/*Tests/*.csproj'

    所以我只是将单元测试任务的项目路径更改为类似于 Visual Studio 中单元测试项目的第二部分(点之后)。

    我在 Visual Studio 2017 中单元测试项目的路径: Desktop\Azure-DevOps-Test\SimpleExample.UnitTests

    运行单元测试的 YAML 任务 [对于 .Net 项目]:

    - task: DotNetCoreCLI@2
        displayName: 'Runing Unit Tests'
        inputs:
          command: test
          projects: '**/*UnitTests/*.csproj'
          arguments: '--configuration $(buildConfiguration)'
    

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题,并花了很长时间尝试不同的文件匹配模式、.NET Core 版本等。

      我的构建管道将测试发布到 artifacts 目录,您可以使用发布命令方便地执行此操作。但是我的测试代理没有下载工件,这就是问题所在。我使用不同的代理进行部署和测试,所以我没有注意到有什么问题,因为部署代理可以访问资源但测试代理没有。

      确保您已在代理配置选项卡的“工件下载”部分选择下载工件。它一直在下降,我认为默认情况下它会显示我的构建包,让我认为它正在被下载。但我仍然必须扩展它并勾选“选择所有工件”选项。如果配置正确,您的部署日志中应该有一个“下载工件”任务。

      我的构建管道的发布任务:

      - task: DotNetCoreCLI@2
        inputs:
          command: 'publish'
          publishWebProjects: false
          projects: '**/*ServiceTests.csproj'
          arguments: '-c $(buildConfiguration) -o $(Build.ArtifactStagingDirectory)/servicetests'
          modifyOutputPath: false
          zipAfterPublish: false
      

      我的测试代理神器下载部分:

      我的测试任务的选择配置:

      【讨论】:

        猜你喜欢
        • 2018-05-19
        • 1970-01-01
        • 2018-11-25
        • 2020-09-06
        • 2021-09-07
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 2020-12-13
        相关资源
        最近更新 更多