如何在Azure DevOps管道中添加单元测试

时间:2019-12-26 06:25:16

标签: azure-devops azure-pipelines vs-unit-testing-framework

构建运行良好,但看不到单元测试结果。添加了使用经典编辑或用于我的解决方案的构建管道。

并且代码覆盖率也为空白。我在解决方案中有两个项目和一个测试项目。单元测试任务返回的结果如下:

    A total of 14 test files matched the specified pattern.
           No test is available in d:\a\1\s\src.net... 
Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.
            Results File: d:\a\_temp\TestResults\VssAdministrator_fv-az686_2019-12-26_06_10_28.trx
            Attachments:
              d:\a\_temp\TestResults\d301a26b-d99f-4b4e-bbe8-c95e588ee1c5\VssAdministrator_fv-az686 2019-12-26 06_10_20.coverage
            Vstest.console.exe exited with code 0.
            **************** Completed test execution *********************
            Test results files: d:\a\_temp\TestResults\VssAdministrator_fv-az686_2019-12-26_06_10_28.trx
            No Result Found to Publish 'd:\a\_temp\TestResults\VssAdministrator_fv-az686_2019-12-26_06_10_28.trx'.
            Created test run: 1006840
            Publishing test results: 0
            Publishing test results to test run '1006840'.
            TestResults To Publish 0, Test run id:1006840
            Published test results: 0
            Publishing Attachments: 2
            Completed TestExecution Model...

而且我也无法从“测试”窗口中看到。

测试YAML脚本如下:

steps:
- task: VSTest@2
  displayName: 'Test Assemblies'
  inputs:
    testAssemblyVer2: |
     **\$(BuildConfiguration)\*test*.dll
     !**\obj\**
    codeCoverageEnabled: true
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'

1 个答案:

答案 0 :(得分:1)

您的YAML没任何问题,相同的定义对我都适用。

  

总共有14个测试文件符合指定的模式。

     

d:\ a \ 1 \ s \ src.net中没有测试可用...

基于这些错误消息,已从文件夹中识别出测试文件,这意味着dll现在已经存在。但是它仍然说没有可用的测试,这更多是与vstest.console.exe相对,没有标识测试。

例如,如果您的测试项目类型为NUnit,则可以使用一个扩展名NUnit测试适配器来支持在Visual Studio中运行的该测试类型。

但是,当项目发布到VSTS中时,此扩展也无法发布,并且此扩展在VSTS托管代理中不存在。如果没有此扩展支持,vstest.console.exe将无法识别Nunit test,然后它将提示类似No test is available in xxxxxxx的消息。请参阅this

但是,您可以安装nuget软件包来替换该VS扩展的角色。

如果类型为Nunit测试,则必须确保在NUnit文件中的软件包NUnit3TestAdaptercsproj上添加引用:

<PackageReference Include="NUnit">
      <Version>3.12.0</Version>
    </PackageReference>
<PackageReference Include="NUnit3TestAdapter">
      <Version>3.15.1</Version>
    </PackageReference>

tp xUnit test类似方法。