找不到与以下模式匹配的测试程序集:** \ * Test * .dll,!** \ * TestAdapter.dll,!** \ obj \ **

And*_*ler 6 azure-pipelines

我正在尝试根据单元测试的成功在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\**.
======================================================
Run Code Online (Sandbox Code Playgroud)

我的所有单元测试都在Visual Studio 2017的本地本地成功运行。

Azure的DevOps的文档看起来非常简单,但是当我跟着它,它不工作。

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

日志记录

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

Jer*_*enW 12

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

.NET Core版本包含一个额外的文件夹:

资料夹结构

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

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

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

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

在此处输入图片说明


Ant*_*ios 9

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

/Framework:.NETCoreApp,Version=v2.1 /logger:console;verbosity="normal"
Run Code Online (Sandbox Code Playgroud)

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

!**\*Microsoft.VisualStudio.TestPlatform*
Run Code Online (Sandbox Code Playgroud)

我的最终 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)'
Run Code Online (Sandbox Code Playgroud)