0

我们有一个同时使用 C# 和 javascript 的 Web 解决方案。我已经使用 Jasmine 包编译并运行 C# 单元测试(VSTest 任务)和 javascript 测试的 vNext 构建工作。C# 测试已经运行了一段时间。在 SonarQube 中报告罚款。我们只是让开发人员开始使用 Javascript,因此它是添加第二个单元测试任务的催化剂。

两个单元测试任务都运行,两者都创建了一个 trx 文件。我注意到的一个特点是第二个测试任务,无论是 C# 还是 javascript,都删除了构建服务器上的 TestResults 目录。现在这对于 TFS 报告来说似乎很好,因为覆盖范围似乎包括两个测试,所以在那里上传很好。问题是当它试图将结果发送到 SonarQube 时,我只得到了测试顺序中的第二个。一旦我发现要删除第一组测试结果,我就可以使用 powershell 脚本创建第二个目录来存储结果,直到 SonarQube 结束任务发生之前。但是,SonarQube 似乎不喜欢同一目录中的第二个 .trx 文件,并选择了两者之一上传到其服务器。它吐出一个警告,发现多个 .trx 文件,

我确实找到了一些关于可以传入的声纳参数的信息,sonar.cs.vstest.reportPath=。Sonar 确实在原始 TestResults 文件夹中提取了该文件,但似乎只提到了第二个 stash 目录,顺便提一下,仅供参考,没有对它做任何事情。

我也尝试使用合并过程将两个 .trx 文件放在一起,但是当我这样做时,SonarQube 看不到任何单元测试结果。

我的主要问题是,有没有更好的方法来运行两组测试任务,使用不同的语言和运行程序,并将结果显示在同一个项目报告中的 SonarQube 中?我是在尝试不应该做的事情,还是有更好的方法来做我正在做的事情?

4

1 回答 1

0

据我所知,没有更好的方法来实现您想要的功能,您需要为每个测试任务运行分析,如下所示:

  1. 准备 SonarQube 分析
  2. 运行测试
  3. 完成 SonarQube 分析
  4. 准备 SonarQube 分析
  5. 运行测试
  6. 完成 SonarQube 分析

这里有类似的问题:我们可以为多个项目运行 SonarQube 吗?

于 2017-02-06T08:48:32.480 回答