【问题标题】:Bamboo shows testcases are 0 even though there are testcases in the applicationBamboo 显示测试用例为 0,即使应用程序中有测试用例
【发布时间】:2019-03-04 02:39:24
【问题描述】:

在 Bamboo 门户中,我创建了不同的任务,其中我检查代码并获取最新代码,使用 MSBuild 构建解决方案,使用脚本运行 Sonarqube 分析。

脚本还包含用于运行测试用例的脚本。这就是它的外观。

Task1:源代码签出配置:我选择了存储库名称。

任务 2:命令配置:此步骤将 Nuget 包恢复到解决方案中

任务 3:脚本配置:启动声纳扫描仪 使用的脚本是:

"C:\sonar-scanner-msbuild-net461\MSBuild.SonarQube.Runner.exe" begin /k:"ProjectKey" /n:"ProjectName" /v:"1" /d:sonar.host.url="SonarqubeURL" /d:sonar.login=435454352345fgdfdsfvdc342434 /d:sonar.cs.vscoveragexml.reportsPaths="C:\Project\Application.coveragexml"

Task4:命令配置:MSBuild:构建解决方案

Task5:脚本配置:运行单元测试: 使用的脚本:

"C:\Program Files (x86)\Microsoft Visual Studio\2017\TestAgent\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe" collect /output:"C:\Project\Application.coverage" "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" "TestProject\bin\Release\TestProject.dll"

"C:\Program Files (x86)\Microsoft Visual Studio\2017\TestAgent\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe" analyze /output:"C:\Project\Application.coveragexml" "C:\Project\Application.coverage"

Task6:脚本配置:End Sonnar Scanner

"C:\sonar-scanner-msbuild-net461\MSBuild.SonarQube.Runner.exe" end /d:sonar.login=435454352345fgdfdsfvdc342434

这些是我在 Bamboo 阶段的任务。 Task6 将测试用例的结果发布到 SonarqubeURL。现在这一切都在按预期发生。

但是当我运行这个计划时,它显示它是一个无测试的构建。 Task5 正在运行所有的测试用例,但是如何让 Bamboo 知道测试用例正在运行。此外,如果任何单元测试用例失败,如何显示它就像测试用例通过:X,失败:Y。

我还缺少任何其他步骤吗?任何帮助深表感谢。

PS : 这是 c# 中的 windows 服务,使用 MStest 编写测试用例。

【问题讨论】:

  • 糟糕,我回答了一个你没有问的问题 :) 我将删除我的答案以避免混淆。

标签: c# sonarqube mstest bamboo


【解决方案1】:

大多数测试工具(包括我认为的 VSTest)都会发出与 JUnit 格式兼容的测试结果 XML 文件。在运行测试并将其配置为解析创建的文件后,您需要添加一个解析 JUnit 文件步骤。请注意,您可以在本地运行构建以找出这些文件的创建位置。

这是有关 JUnit Parser 任务的文档:

https://confluence.atlassian.com/bamboo/junit-parser-289277056.html

(Atlassian 提供了关于其产品的优秀文档顺便说一句)

【讨论】:

  • 是的,在运行上述(问题)提到的脚本时会创建 XML 文件。我也知道生成的路径。您能否详细解释一下“在运行测试并配置它以解析创建的文件后,您需要添加一个解析 JUnit 文件步骤”。
  • 用 JUnit Parser 任务的链接更新了答案
  • 抱歉这么晚才回复。我已经添加了这个任务并进行了测试。在文档中写道,我们不应该指定绝对路径。但是我的代码在目录中:“/xml-data/build-dir/JOB_KEY/”,而我的 .coveragexml 文件是在“C:\Project\Application.coveragexml”的另一个文件夹中生成的。那我应该如何指定路径。
  • 所以 - 您需要将 xml 文件移动到工作目录或指定绝对路径。在大多数 CI 工具中,您的代码被检出到构建代理上的目录中。在 Bamboo 中,该位置由bamboo.build.working.directory 变量引用,并且是构建任务的默认目录。使用像 C:\Project 这样的绝对目录不是一个好主意,因为它不是特定于工作的,因此无法扩展。此外,您可能会遇到文件/目录保护问题。这就是为什么所有文件引用都应该与工作目录相关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多