无法使Azure DevOps识别并运行我的NUnit测试

时间:2019-03-02 06:02:16

标签: azure nunit azure-pipelines

我正在尝试让我的NUnit测试在Azure DevOps管道中运行。但是,即使我可以看到我的项目正在构建:

Reduce(ggplot2:::`+.gg`, 

       c(list(ggplot(dat, aes(x = age_group, y = value, fill = Gender)),
              geom_col(), coord_flip(), ylab("Visits 2018-2019"), xlab(""),
              scale_fill_manual(values= c("#740404", "#AB6868", "#D5B3B3"),
                              labels = c("Females", "Males", "N/A")),
              theme(legend.title=element_blank()),
              geom_text(aes(label = paste0(age_per, "%")), hjust = 2.7, 
                        position = "stack", color = "white", size =5) 
         ),
         Map(function(x_loc, g_lab) annotate("text", x=x_loc, y=7.25,
                                                label = paste0(g_lab, "%")),
             seq(length(unique(dat$grp_pct))), unique(dat$grp_pct)
         )
       )
)

我仍然得到以下信息:

Done Building Project "D:\a\3\s\Src\Standard\Splyce.Standard.Common.Tests\Splyce.Standard.Common.Tests.csproj" (default targets).

我按照https://developercommunity.visualstudio.com/solutions/357521/view.html中的说明添加了“ vsTest-测试组件”步骤,并且没有更改任何设置。

我的测试项目确实包含NUnit3测试适配器:

Test Adapter

所以我很确定这只是一个路径问题。但是,程序集选择器上的globe应该可以找到它。这是问题解决方案的磁盘文件夹结构:

更新:显示物理磁盘布局包括Src。

##[warning]No test assemblies found matching the pattern: **\*test*.dll,!**\*TestAdapter.dll,!**\obj\**.

有人可以在这里给我任何有关如何使Azure找到我的测试程序集的想法吗。

2 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,但是根本原因最终与我将VSBuild任务上的msbuildArgs参数设置为'/ target:Publish'有关。 VSBuild日志让我知道该项目无法发布,这也阻止了它的构建。

完成的建筑项目“ D:\ BuildAgents \ Agent03_work \ 1 \ s \ Calculators \ Calculators.csproj”(发布目标)。 项目“ D:\ BuildAgents \ Agent03_work \ 1 \ s \ Workbench.sln”(1)正在节点1上构建“ D:\ BuildAgents \ Agent03_work \ 1 \ s \ Calculators.Tests \ Calculators.Tests.csproj”(5) (发布目标)。 _DeploymentUnpublishable: 跳过无法发布的项目。 完成的建筑项目“ D:\ BuildAgents \ Agent03_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任务。

答案 1 :(得分:0)

搜索的根文件夹是什么?默认情况下,它也是用于查找测试适配器的根文件夹。默认值为“存储库根目录”,但是由于您正在构建特定的csproj,因此我怀疑您可能已将其范围限定为项目根目录而不是解决方案根目录。

enter image description here

您可以覆盖测试适配器的更特定路径:

enter image description here

您可能应该在其中粘贴以下内容:$(Build.SourcesDirectory)\packages\

如果您的项目是.NET Core,则也可以尝试运行dotnet test任务而不是vstest