【问题标题】:How to build the Unit Test project along with the 'Visual Studio Build' task in CI build Azure DevOps如何在 CI 构建 Azure DevOps 中构建单元测试项目以及“Visual Studio 构建”任务
【发布时间】:2020-06-24 14:46:44
【问题描述】:

我正在尝试运行单元测试用例并在运行 CI 构建时计算代码覆盖率。 您可以在下图中查看构建定义。 我收到错误消息:'找不到与给定过滤器匹配的测试源 ***bin\Release\UTproject.dll'

当我检查任务“构建解决方案”的日志时,我发现没有任何正在构建的单元测试用例的痕迹。虽然其他项目正在建设中。 谁能指导我应该在存储库或构建中进行哪些更改以确保单元测试项目与其他项目一起构建? 也许构建单元测试项目将解决上述与 Ci build 一起运行单元测试的问题。让我知道我是否还有其他遗漏。

提前致谢!

【问题讨论】:

  • 他们在本地构建吗?您是否正在构建一个包含测试的项目被排除在外的配置?
  • 构建在单独的构建服务器上运行,我们在那里安装了构建代理。没有这样设置的排除。
  • 我认为@DanielMann 是在询问您在本地构建时是否匹配您在构建解决方案步骤中配置的配置/平台?如果他们在本地构建这些项目,您是说您确认将相同的配置/平台设置传递给构建解决方案步骤?
  • 是的,它正在本地构建。我后来检查了 Uni 测试项目。(与其他现有项目相比,它是新项目)。他们在 .csproj 中是否需要签入以确保它在构建服务器上构建?
  • 这个问题有什么更新吗?你解决了这个问题吗?如果没有,请告诉我有关此问题的最新信息吗?

标签: azure unit-testing azure-devops code-coverage


【解决方案1】:

当我检查任务“构建解决方案”的日志时,我发现没有任何正在构建的单元测试用例的痕迹。

根据你的描述,需要找出单元测试项目没有建好的原因。

所以,首先,我们需要确保我们已经在 repo 中提交了单元测试项目,并且 Visual Studio build 任务构建了 solution .sln 文件,而不仅仅是项目 .csproj 文件:

其次,如果单元测试项目构建完成后仍然报同样的错误,那么我们需要检查Visual Studio TestTest files选项中的filter任务。

如日志所示,您将过滤器设置为:

**\*bin\release\xxxxUT.dll

因此,您需要确保在Visual Studio build 任务中构建解决方案时设置了configuration=release

或者您可以将过滤器更改为:

**\*UI*.dll
!**\obj\**

而且Search文件夹应该是生成测试dll的文件夹,默认值为$(System.DefaultWorkingDirectory)

希望这会有所帮助。

【讨论】:

  • 谢谢!我能够构建单元测试项目。现在,当管道排队时,单元测试正在运行。正在将覆盖范围导出到 sonarqube 服务器,这仍在等待中,如果您在这部分有任何有价值的 i/p,请告诉我。
猜你喜欢
  • 2014-10-25
  • 1970-01-01
  • 2020-08-16
  • 1970-01-01
  • 2019-04-14
  • 2020-09-04
  • 2020-09-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多