在Azure DevOps中运行.Net / VS测试运行器失败

马丁·汉

我正在运行针对.Net Framework 4.6.2的C#单元测试。

事情在本地运行良好,它还可以正常构建并运行安装在构建代理上的VS2019中的所有测试。

但是,当使用托管代理或自托管代理在Azure DevOps中运行生成时,即使所有测试均成功,测试步骤也会失败。

vstest.console.exe从命令行在构建代理上手动运行,可以正常运行并成功。我使用与Azure DevOps相同的参数运行此命令。

从日志中产生的错误(数百个):

## [错误] [xUnit.net 00:00:00.0457701] Microsoft.VisualStudio.QualityTools.UnitTestFramework:灾难性故障:System.TypeInitializationException:'Xunit.DiaSession'的类型初始值设定项引发了异常。---> System.IO.FileNotFoundException:无法加载文件或程序集'System.Reflection.TypeExtensions,版本= 4.1.0.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。该系统找不到指定的文件。

## [error] at Xunit.DiaSession..cctor()## [error] ---内部异常堆栈跟踪的结尾--- ## [error] at Xunit.DiaSession..ctor(String assemblyFileName)## [错误]在C:\ projects \ xunit \ src \ xunit.runner.utility \ Utility \ DiaSessionWrapper_DotNet.cs:line 16中的Xunit.DiaSessionWrapper..ctor(String assemblyFilename)

Xunit.XunitFrontController..ctor(AppDomainSupport appDomainSupport,字符串assemblyFileName,字符串configFileName,布尔shadowCopy,字符串shadowCopyFolder,ISourceInformationProvider sourceInformationProvider,IMessageSink诊断消息Sink)上的## [错误]在C:\ projects \ xunit \ src \ xunit.runner.utility \ Frameworks \ XunitFrontController.cs:第64行

Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner.RunTestsInAsssembly(IRunContext runContext,IFrameworkHandle frameworkHandle,LoggerHelper logger,TestPlatformContext testPlatformContext,IMessageSinkWithTypes reporterMessageHandler,AssemblyRunInfo runInfo)上的## [错误]。 visualstudio \ VsTestRunner.cs:线458

建立摘要

测试总数:3679通过:3675跳过:4总时间:3.4993分钟Vstest.console.exe以代码1退出。

在日志顶部的测试步骤初始化期间:

找到相同扩展名的多个版本。选择最高版本。Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter:14.0.2505.1 xunit.runner.visualstudio.dotnetcore.testadapter:99.99.99.0 xunit.runner.visualstudio.testadapter:99.99.99.0

管道

pool:
  name: Dedicated VS2017
  demands:
  - msbuild
  - visualstudio
  - vstest

steps:
- task: gittools.gitversion.gitversion-task.GitVersion@3
  displayName: GitVersion
  inputs:
    updateAssemblyInfo: true

- task: NuGetToolInstaller@0
  displayName: 'Use NuGet 4.3.0'

- task: NuGetCommand@2
  displayName: 'NuGet restore Shamrock.Web'
  inputs:
    restoreSolution: '$(Parameters.solution)'

- task: Npm@1
  displayName: 'npm install Documenta'
  inputs:
    workingDir: src/Documenta/Documenta.Web/ClientApp
    verbose: false
  enabled: false

- task: Npm@1
  displayName: 'npm build Documenta/ClientApp'
  inputs:
    command: custom
    workingDir: src/Documenta/Documenta.Web/ClientApp
    verbose: false
    customCommand: 'run build'
  enabled: false

- task: Npm@1
  displayName: 'npm install Shamrock.Web/Angular'
  inputs:
    workingDir: src/Shamrock.Web/Shamrock.Web/Angular
    verbose: false
  enabled: false

- task: Npm@1
  displayName: 'npm build Shamrock.Web/Angular'
  inputs:
    command: custom
    workingDir: src/Shamrock.Web/Shamrock.Web/Angular
    verbose: false
    customCommand: 'run build'
  enabled: false

- task: VSBuild@1
  displayName: 'Build solution'
  inputs:
    solution: src/Shamrock.Web/Shamrock.Web.sln
    msbuildArgs: '/p:SEPrecompilerIncludeRazor=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"'
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'
    clean: true
    maximumCpuCount: true

- task: VSBuild@1
  displayName: 'Build solution D365'
  inputs:
    solution: src/Shamrock.D365/Shamrock.D365.sln
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"'
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'
    maximumCpuCount: true
  enabled: false

- task: VSBuild@1
  displayName: 'Build solution Documenta'
  inputs:
    solution: src/Documenta/Documenta.sln
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"'
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'
    maximumCpuCount: true
  enabled: false

- task: VSTest@2
  displayName: 'Test Assemblies'
  inputs:
    testAssemblyVer2: |
     **\$(BuildConfiguration)\*tests.dll
     !**\obj\**
     !**\*testadapter.dll
    vsTestVersion: 16.0
    runInParallel: false
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'
    diagnosticsEnabled: True

- task: CopyFiles@2
  displayName: 'Copy DACPAC'
  inputs:
    Contents: '**\*.dacpac'
    TargetFolder: '$(build.artifactstagingdirectory)'

- task: CopyFiles@2
  displayName: 'Copy Database Publish Profile'
  inputs:
    Contents: '**\Shamrock.Database.publish.xml'
    TargetFolder: '$(build.artifactstagingdirectory)'

- task: PublishSymbols@1
  displayName: 'Publish symbols path'
  inputs:
    SearchPattern: '**\bin\**\*.pdb'
  enabled: false
  continueOnError: true

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact'
  inputs:
    PathtoPublish: '$(build.artifactstagingdirectory)'
    ArtifactName: '$(Parameters.ArtifactName)'
马丁·汉

仅当“在发生灾难性故障时收集高级诊断信息”标志设置为时,才会出现此问题true

确保关闭它,然后工作正常。

在此处输入图片说明

现在已解决已知问题:https : //developercommunity.visualstudio.com/content/problem/763234/e0434352clr-issues.html


2020年1月7日更新

即使我们前面提到的标志设置为false,该问题再次出现。

我们这次发现的解决方案是将Tools安装程序步骤添加到管道中,并在测试步骤中使用它。

UI中的工具安装程序步骤

在此处输入图片说明

使用正确的测试平台版本 在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Azure DevOps-测试运行管理,还原运行结果

来自分类Dev

将日志文件附加到Azure Devops测试运行

来自分类Dev

Couchbase测试运行失败

来自分类Dev

是否可以将测试计划中的测试用例附加到管道发布测试运行结果上?Azure DevOps API V6.0

来自分类Dev

在Azure DevOps中仅运行某些测试

来自分类Dev

Android的测试运行失败:没有测试结果

来自分类Dev

在 Azure DevOps 管道中从 PowerShell 运行 Terraform

来自分类Dev

业力测试运行器-无法捕获Chrome

来自分类Dev

是否有PHPUnit的分层测试运行器?

来自分类Dev

多个HTML记者Karma测试运行器

来自分类Dev

业力测试运行器-无法捕获Chrome

来自分类Dev

测试运行器在重播期间找不到控件

来自分类Dev

Microsoft伪造品和TFS 2012 Visual Studio测试运行器-单元测试偶尔会失败

来自分类Dev

当测试运行程序中的测试失败时,如何使OpenCover返回错误?

来自分类Dev

Django测试运行程序在Ubuntu上的virtualenv中失败

来自分类Dev

通过VSTS中的命令行测试运行器发布测试结果

来自分类Dev

使用Python中的绿色测试运行器跳过测试

来自分类Dev

着色golang测试运行输出

来自分类Dev

作为Maven测试运行

来自分类Dev

再现ScalaCheck测试运行

来自分类Dev

Intellij测试运行历史

来自分类Dev

测试运行null和字母?

来自分类Dev

Serverspec测试运行问题

来自分类Dev

使用JUNIT测试运行AsyncHttpClient

来自分类Dev

在测试运行期间浏览

来自分类Dev

使用R#测试运行器运行ReSharper插件测试

来自分类Dev

哪个测试运行程序可与VSTS和ASP.NET Core一起使用?

来自分类Dev

普通测试测试运行期间啤酒调用失败

来自分类Dev

普通测试测试运行期间啤酒调用失败

Related 相关文章

热门标签

归档