I'm trying up update my test results on my test plan via my release pipeline. I go to the test plan, click execute, click on the dropdown arrow next to "Run for web application", click "Run with options", set "Select test type and runner" to "Automated tests using release stage", then select my Build pipeline to the one I've created for this along with the last successful build it had. And I select my Release pipeline with its one stage. But every time I do, I get an error as soon as the "Automated test run" modal appears. After it successfully identifies the tests, the Validating stage gives me this error:
"Validating stage:The selected stage does not have the right version or settings of the Visual Studio Test task to run tests."
I have tried so many different things. I don't know what could be missing. I will provide the YAML for the pipelines I'm using as well as the .csproj files and the packages files.
Here is the YAML for the build pipeline:
trigger:
- master
pool:
vmImage: 'windows-2022'
variables:
buildConfiguration: 'Release'
steps:
# Step 1: Restore NuGet packages
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '**/*.sln'
# Step 2: Build the solution
- task: VSBuild@1
inputs:
solution: '**/*.sln'
msbuildArgs: '-p:Configuration=$(buildConfiguration)'
platform: 'Any CPU'
configuration: '$(buildConfiguration)'
# Step 3: Copy test project output to staging folder
- task: CopyFiles@2
displayName: 'Copy Test Output'
inputs:
SourceFolder: '$(Build.SourcesDirectory)\[REDACTED]\bin\$(buildConfiguration)'
Contents: '**'
TargetFolder: '$(Build.ArtifactStagingDirectory)\tests'
# Step 4: Publish the test binaries as a build artifact
- task: PublishBuildArtifacts@1
displayName: 'Publish Test Binaries'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)\tests'
ArtifactName: 'drop'
For the one agent job on this release pipeline, the agent pool is set to the pool where my tests are located. There is only one Demand in the demands section and it is set to "vstest exists". Artifact download is set to latest of the build pipeline. I also enabled "Allow scripts to access the OAuth token" fwiw.
steps:
- task: DownloadBuildArtifacts@1
displayName: 'Download Test Binaries'
inputs:
buildType: specific
project: 'ef4409bf-7852-4493-b0bc-b3ff603052e0'
pipeline: 1686
artifactName: drop
extractTars: false
#Your build pipeline references the ‘FeaturesToTest’ variable, which you’ve selected to be settable at queue time. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab, and then select the option to make it settable at queue time. See https://go.microsoft.com/fwlink/?linkid=865971
steps:
- task: VSTest@2
displayName: 'Run automated tests'
inputs:
testAssemblyVer2: |
**\*Tests*.dll
!**\*TestAdapter.dll
!**\obj\**
searchFolder: '$(System.ArtifactsDirectory)\drop'
testFiltercriteria: 'TestCategory=$(FeaturesToTest)'
uiTests: true
pathtoCustomTestAdapters: '$(System.ArtifactsDirectory)\drop\NUnit3.TestAdapter.dll'
runTestsInIsolation: true
codeCoverageEnabled: false
diagnosticsEnabled: true
collectDumpOn: always
continueOnError: true
These are the packages.config files for my project and for the "Utils" folder.
Project packages.config file:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="AWSSDK.Core" version="3.7.100.14" targetFramework="net461" />
<package id="AWSSDK.SecurityToken" version="3.7.100.14" targetFramework="net461" />
<package id="Crc32C.NET" version="1.0.5.0" targetFramework="net461" />
<package id="DnsClient" version="1.6.1" targetFramework="net461" requireReinstallation="true" />
<package id="DotNetSeleniumExtras.PageObjects.Core" version="4.3.0" targetFramework="net461" requireReinstallation="true" />
<package id="EPPlus" version="7.0.0" targetFramework="net461" requireReinstallation="true" />
<package id="EPPlus.Interfaces" version="6.1.1" targetFramework="net461" requireReinstallation="true" />
<package id="EPPlus.System.Drawing" version="6.1.1" targetFramework="net461" requireReinstallation="true" />
<package id="ExtentReports" version="3.1.3" targetFramework="net461" />
<package id="Faker.Data" version="1.0.7" targetFramework="net461" />
<package id="FluentAssertions" version="5.6.0" targetFramework="net461" requireReinstallation="true" />
<package id="HtmlAgilityPack" version="1.4.9.5" targetFramework="net461" />
<package id="LeanFT.Selenium" version="1.0.1" targetFramework="net461" />
<package id="Microsoft.AspNet.Razor" version="3.0.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Authentication.Abstractions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Authentication.Core" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Connections.Abstractions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Diagnostics" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Diagnostics.Abstractions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.HostFiltering" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Hosting" version="2.2.7" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Hosting.Abstractions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Hosting.Server.Abstractions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Html.Abstractions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Http" version="2.2.2" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Http.Abstractions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Http.Extensions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Http.Features" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.HttpOverrides" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Razor" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Razor.Language" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Razor.Runtime" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Routing" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Routing.Abstractions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Server.IIS" version="2.2.6" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Server.IISIntegration" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Server.Kestrel" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Server.Kestrel.Core" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Server.Kestrel.Https" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.AspNetCore.WebUtilities" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Azure.KeyVault" version="3.0.5" targetFramework="net461" />
<package id="Microsoft.Azure.KeyVault.Core" version="3.0.5" targetFramework="net461" />
<package id="Microsoft.Azure.KeyVault.WebKey" version="3.0.5" targetFramework="net461" />
<package id="Microsoft.Azure.Management.AppService.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.Batch.Fluent" version="1.26.1" targetFramework="net461" />
<package id="Microsoft.Azure.Management.BatchAI.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.Cdn.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.Compute.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.ContainerInstance.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.ContainerRegistry.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.ContainerService.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.CosmosDB.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.Dns.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.EventHub.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.Graph.RBAC.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.KeyVault.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.Locks.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.Monitor.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.Msi.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.Network.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.PrivateDns.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.Redis.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.ResourceManager.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.Search.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.ServiceBus.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.Sql.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.Storage.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Azure.Management.TrafficManager.Fluent" version="1.38.0" targetFramework="net461" />
<package id="Microsoft.Bcl.AsyncInterfaces" version="8.0.0" targetFramework="net461" requireReinstallation="true" />
<package id="Microsoft.CodeAnalysis.Analyzers" version="1.1.0" targetFramework="net461" />
<package id="Microsoft.CodeAnalysis.Common" version="2.8.0" targetFramework="net461" />
<package id="Microsoft.CodeAnalysis.CSharp" version="2.8.0" targetFramework="net461" />
<package id="Microsoft.CSharp" version="4.5.0" targetFramework="net461" />
<package id="Microsoft.Data.Edm" version="5.8.2" targetFramework="net461" />
<package id="Microsoft.Data.OData" version="5.8.2" targetFramework="net461" />
<package id="Microsoft.Data.Services.Client" version="5.8.2" targetFramework="net461" />
<package id="Microsoft.Extensions.Configuration" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.Configuration.Abstractions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.Configuration.Binder" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.Configuration.CommandLine" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.Configuration.EnvironmentVariables" version="2.2.4" targetFramework="net461" />
<package id="Microsoft.Extensions.Configuration.FileExtensions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.Configuration.Json" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.Configuration.UserSecrets" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.DependencyInjection" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.FileProviders.Abstractions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.FileProviders.Physical" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.FileSystemGlobbing" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.Hosting.Abstractions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.Logging" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.Logging.Abstractions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.Logging.Configuration" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.Logging.Console" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.Logging.Debug" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.Logging.EventSource" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.ObjectPool" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.Options" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.Options.ConfigurationExtensions" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.Extensions.Primitives" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.IdentityModel.Clients.ActiveDirectory" version="4.3.0" targetFramework="net461" />
<package id="Microsoft.IdentityModel.Logging" version="1.1.2" targetFramework="net461" />
<package id="Microsoft.IdentityModel.Tokens" version="5.1.2" targetFramework="net461" />
<package id="Microsoft.Net.Http.Headers" version="2.2.0" targetFramework="net461" />
<package id="Microsoft.NET.Test.Sdk" version="17.9.0" targetFramework="net461" requireReinstallation="true" />
<package id="Microsoft.Rest.ClientRuntime" version="2.3.20" targetFramework="net461" />
<package id="Microsoft.Rest.ClientRuntime.Azure" version="3.3.18" targetFramework="net461" />
<package id="Microsoft.Rest.ClientRuntime.Azure.Authentication" version="2.4.1" targetFramework="net461" />
<package id="MongoDB.Bson" version="2.10.0" targetFramework="net461" />
<package id="MongoDB.Driver" version="2.10.0" targetFramework="net461" />
<package id="MongoDB.Driver.Core" version="2.10.0" targetFramework="net461" />
<package id="MongoDB.Libmongocrypt" version="1.12.0" targetFramework="net461" requireReinstallation="true" />
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net461" />
<package id="NUnit" version="3.13.3" targetFramework="net461" />
<package id="NUnit.Console" version="3.15.0" targetFramework="net461" />
<package id="NUnit.ConsoleRunner" version="3.15.0" targetFramework="net461" />
<package id="NUnit.Extension.NUnitProjectLoader" version="3.6.0" targetFramework="net461" />
<package id="NUnit.Extension.NUnitV2Driver" version="3.8.0" targetFramework="net461" />
<package id="NUnit.Extension.NUnitV2ResultWriter" version="3.6.0" targetFramework="net461" />
<package id="NUnit.Extension.TeamCityEventListener" version="1.0.7" targetFramework="net461" />
<package id="NUnit.Extension.VSProjectLoader" version="3.8.0" targetFramework="net461" />
<package id="NUnit3TestAdapter" version="4.5.0" targetFramework="net461" requireReinstallation="true" />
<package id="Pickles.CommandLine" version="2.20.1" targetFramework="net461" />
<package id="Portable.BouncyCastle" version="1.8.6" targetFramework="net461" />
<package id="Protractor" version="1.0.0" targetFramework="net461" />
<package id="RandomStringUtils" version="0.2.5732" targetFramework="net461" />
<package id="RazorEngine" version="3.9.0" targetFramework="net461" />
<package id="RazorEngine.NetCore" version="2.2.6" targetFramework="net461" />
<package id="RestSharp" version="106.6.9" targetFramework="net461" />
<package id="Selenium.Support" version="4.4.0" targetFramework="net461" requireReinstallation="true" />
<package id="Selenium.WebDriver" version="4.4.0" targetFramework="net461" requireReinstallation="true" />
<package id="Selenium.WebDriver.ChromeDriver" version="135.0.7049.11400" targetFramework="net461" />
<package id="Selenium.WebDriver.MSEdgeDriver" version="131.0.2903.48" targetFramework="net461" />
<package id="Serilog" version="2.9.0" targetFramework="net461" />
<package id="Serilog.Sinks.Console" version="3.1.1" targetFramework="net461" />
<package id="Serilog.Sinks.File" version="4.1.0" targetFramework="net461" />
<package id="SharpCompress" version="0.38.0" targetFramework="net461" requireReinstallation="true" />
<package id="SharpZipLib" version="1.2.0" targetFramework="net461" />
<package id="Snappier" version="1.0.0" targetFramework="net461" />
<package id="Snappy.NET" version="1.1.1.8" targetFramework="net461" />
<package id="SpecFlow" version="2.4.0" targetFramework="net461" />
<package id="SpecFlow.NUnit" version="2.4.0" targetFramework="net461" />
<package id="SpecFlow.NUnit.Runners" version="2.4.0" targetFramework="net461" />
<package id="System.AppContext" version="4.3.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Buffers" version="4.5.1" targetFramework="net461" />
<package id="System.Collections" version="4.3.0" targetFramework="net461" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net461" />
<package id="System.Collections.Immutable" version="1.5.0" targetFramework="net461" />
<package id="System.Collections.NonGeneric" version="4.3.0" targetFramework="net461" />
<package id="System.ComponentModel.Annotations" version="4.5.0" targetFramework="net461" />
<package id="System.ComponentModel.EventBasedAsync" version="4.0.11" targetFramework="net461" />
<package id="System.Console" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.DiagnosticSource" version="4.5.1" targetFramework="net461" />
<package id="System.Diagnostics.FileVersionInfo" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.StackTrace" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net461" />
<package id="System.Drawing.Common" version="7.0.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Dynamic.Runtime" version="4.3.0" targetFramework="net461" />
<package id="System.Globalization" version="4.3.0" targetFramework="net461" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net461" />
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net461" />
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.IO.Pipelines" version="4.5.3" targetFramework="net461" />
<package id="System.Linq" version="4.3.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Linq.Queryable" version="4.0.0" targetFramework="net461" />
<package id="System.Memory" version="4.5.5" targetFramework="net461" />
<package id="System.Net.Requests" version="4.0.11" targetFramework="net461" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net461" />
<package id="System.Reflection" version="4.3.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Reflection.Emit" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection.Metadata" version="1.6.0" targetFramework="net461" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime" version="4.3.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net461" />
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net461" />
<package id="System.Security.AccessControl" version="4.5.0" targetFramework="net461" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Security.Cryptography.Cng" version="4.5.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Permissions" version="4.5.0" targetFramework="net461" />
<package id="System.Security.Principal.Windows" version="4.5.0" targetFramework="net461" />
<package id="System.Spatial" version="5.8.2" targetFramework="net461" />
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net461" />
<package id="System.Text.Encoding.CodePages" version="8.0.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net461" />
<package id="System.Text.Encodings.Web" version="5.0.0" targetFramework="net461" />
<package id="System.Text.Json" version="5.0.0" targetFramework="net461" />
<package id="System.Threading" version="4.3.0" targetFramework="net461" />
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net461" />
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net461" />
<package id="System.Threading.Tasks.Parallel" version="4.3.0" targetFramework="net461" />
<package id="System.Threading.Thread" version="4.3.0" targetFramework="net461" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net461" />
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net461" />
<package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="net461" />
<package id="System.Xml.XPath" version="4.3.0" targetFramework="net461" />
<package id="System.Xml.XPath.XDocument" version="4.3.0" targetFramework="net461" />
<package id="[REDACTED].Tests.AngularCore" version="10.0.24" targetFramework="net461" developmentDependency="true" />
<package id="WindowsAzure.Storage" version="9.3.3" targetFramework="net461" />
<package id="ZstdSharp.Port" version="0.8.1" targetFramework="net461" requireReinstallation="true" />
</packages>
I ran out of characters but I will comment/respond with Utils package.config file.
Someone please tell me what it could be.
To execute the tests from the Test Plan, the Test Plan expects that your Release pipeline is identifying the tests using the TestRun
strategy in the VSTest@3
task:
- task: VSTest@3
inputs:
testSelector: testRun
tcmTestRun: $(test.RunId)
The reasoning behind this: when you select specific tests to run, ADO creates a Test Run for test cases that have associated automation. The "associated automation" includes the assembly name and name of the test, and the test engine has the smarts to locate the tests from the build artifacts and run just those tests you've selected.
The pipeline you've configured is simply executing the tests without knowledge about the Test Plan. If your interest is to queue the pipeline to run all tests and update the Test Plan, have a look at my azuredevops-test-plan extension, which can update a Test Plan from test results.