无法让Azure DevOps识别并运行我的NUnit测试
我正试图让我的NUnit测试在Azure DevOps管道中运行。然而,尽管我可以看到我的项目正在建设中:无法让Azure DevOps识别并运行我的NUnit测试,azure,nunit,azure-pipelines,Azure,Nunit,Azure Pipelines,我正试图让我的NUnit测试在Azure DevOps管道中运行。然而,尽管我可以看到我的项目正在建设中: Done Building Project "D:\a\3\s\Src\Standard\Splyce.Standard.Common.Tests\Splyce.Standard.Common.Tests.csproj" (default targets). 我仍然得到以下信息: ##[warning]No test assemblies found matching the patte
Done Building Project "D:\a\3\s\Src\Standard\Splyce.Standard.Common.Tests\Splyce.Standard.Common.Tests.csproj" (default targets).
我仍然得到以下信息:
##[warning]No test assemblies found matching the pattern: **\*test*.dll,!**\*TestAdapter.dll,!**\obj\**.
我按照中的说明添加“vsTest-Test Assemblies”步骤,没有更改任何设置
我的测试项目包括NUnit3测试适配器:
所以我很确定这只是一个路径问题。但是,部件选择器上的全局搜索应该可以找到它。这是有关解决方案的磁盘上文件夹结构:
更新:显示物理磁盘布局包括Src。
E:.
+---BuildProcessTemplates
\---Src
+---AgentApiServer
| +---Splyce.AgentApi.Common
| | +---bin
| | | \---Debug
| | | \---netcoreapp2.1
| | +---MirrorEngine
| | | \---Framework
| | | +---Dtos
| | | +---Enums
| | | +---Events
| | | \---Interfaces
| | \---obj
| | \---Debug
| | \---netcoreapp2.1
| \---Splyce.AgentApi.Server
| +---bin
| | \---Debug
| | +---netcoreapp2.0
| | +---netcoreapp2.1
| | \---netcoreapp2.2
| +---obj
| | \---Debug
| | +---netcoreapp2.0
| | +---netcoreapp2.1
| | \---netcoreapp2.2
| +---Properties
| \---wwwroot
\---Standard
+---Common
+---packages
| +---NUnit.3.11.0
| | +---build
| | \---lib
| | +---net20
| | +---net35
| | +---net40
| | +---net45
| | +---netstandard1.4
| | \---netstandard2.0
| +---NUnit3TestAdapter.3.13.0
| | \---build
| | +---net35
| | \---netcoreapp1.0
| \---Shouldly.3.0.2
| \---lib
| +---net40
| +---net451
| +---netstandard1.3
| \---netstandard2.0
+---Splyce.Standard.Common
| +---bin
| | \---Debug
| | \---netstandard2.0
| +---Helpers
| \---obj
| \---Debug
| \---netstandard2.0
+---Splyce.Standard.Common.Tests
| +---bin
| | +---Debug
| | \---Release
| +---obj
| | \---Debug
| | \---TempPE
| \---Properties
+---Splyce.Standard.DbMigrations
| +---bin
| | \---Debug
| | \---netstandard2.0
| +---Dtos
| +---Framework
| | +---DbUp
| | +---Dtos
| | | \---DatabaseMigrationsManager
| | +---Enums
| | \---Events
| \---obj
| \---Debug
| \---netstandard2.0
+---Splyce.Standard.Messaging
| +---bin
| | \---Debug
| | \---netstandard2.0
| +---Client
| | +---Publisher
| | \---Subscriber
| +---Framework
| | +---Interfaces
| | \---Messages
| +---Messages
| | +---Health
| | \---Mirroring
| \---obj
| \---Debug
| \---netstandard2.0
\---UnitTestProject1
+---bin
| \---Debug
| \---netcoreapp2.2
\---obj
\---Debug
\---netcoreapp2.2
这里有谁能告诉我一些关于如何让Azure找到我的测试程序集的想法。你搜索的根文件夹是什么?默认情况下,这也是用于查找测试适配器的根文件夹。默认值是存储库根目录,但由于您正在构建特定的
csproj
,我怀疑您可能已将其范围限定为项目根目录,而不是解决方案根目录
您可以覆盖到测试适配器的更特定路径:
您可能应该在其中粘贴以下内容:$(Build.SourcesDirectory)\packages\
如果您的项目是.NET Core,您也可以尝试运行
dotnet test
任务,而不是vstest
我遇到了类似的问题,但根本原因与我的VSBuild任务上的msbuildArgs参数设置为“/target:Publish”有关。VSBuild日志让我知道该项目无法发布,这也阻止了它的构建
已完成生成项目“D:\BuildAgents\Agent03\u work\1\s\Calculators\Calculators.csproj”(发布目标)。
项目“D:\BuildAgents\Agent03\u work\1\s\Workbench.sln”(1)正在节点1(发布目标)上生成“D:\BuildAgents\Agent03\u work\1\s\Calculators.Tests\Calculators.Tests.csproj”(5)。
_部署不可发布:
跳过不可发布的项目。
已完成生成项目“D:\BuildAgents\Agent03\u work\1\s\Calculators.Tests\Calculators.Tests.csproj”(发布目标)
我的决定只是添加一个额外的构建任务。以下是我更新的yaml:
- task: VSBuild@1
inputs:
solution: '$(solution)'
vsVersion: '16.0'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: VSTest@2
inputs:
testSelector: 'testAssemblies'
testAssemblyVer2: '**\*Test*.dll'
searchFolder: '$(System.DefaultWorkingDirectory)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
vsVersion: '16.0'
platform: '$(buildPlatform)'
msbuildArgs: '/target:Publish'
configuration: '$(buildConfiguration)'
随后是CopyFiles和PublishBuildArtifacts任务。生成的dll称为类似于
*test*.dll
?是的,例如Splyce.Standard.Common.Tests。$(System.DefaultWorkingDirectory)\packages\生成错误,表明packages文件夹不存在。我似乎无法找到各种变量是什么,因此我可以尝试其他变量。测试项目是.NET 4.6.1测试.NET标准2.0类库。改为使用Build.SourcesDirectory。这是我的错误,我有$(Build.SourcesDirectory)\packages,但失败了。查看输出,我发现$(Build.SourcesDirectory)\Src\Standard\packages可能就是它所需要的。现在,虽然路径存在(因此没有错误),但我仍然没有生成任何测试。我已更新磁盘布局,因为我怀疑由于解决方案位于文件夹中,这会导致问题。或者我需要提供\Src的根基本文件夹?您是否尝试过在packages文件夹中指向一个非常特定的包,或者使用脚本将DLL复制到测试项目的bin文件夹中?