【问题标题】:Tests failing with gallio but passing with nunit-console.exe使用 Gallio 测试失败但使用 nunit-console.exe 通过
【发布时间】:2013-06-07 14:36:28
【问题描述】:

我正在为一个项目使用声纳分析。我无法获得代码覆盖率,因为当我使用 Gallio 运行时测试会出错。

如果我使用 nunit-console.exe 运行相同的单元测试,它们都通过了。 (我在cmd的管理员模式下运行)

但是当我用 Gallio 运行它们时它们失败了。以前有人遇到过这个问题吗?

这是我使用 sonar gallio 跑步时得到的结果。

03:51:30.754 INFO - 101 次运行,7 次通过,94 次失败(94 错误),0 次不确定,0 次跳过 03:51:30.754 信息 - 03:51:30.910 信息 - 提交... 03:51:31.238 信息 - 访问的第 11 课,共 20 课 (55) 03:51:31.238 信息 - 访问方法 16 of 80 (20) 03:51:31.238 信息 - 访问点 66 of 519 (12.7167630057803) 03:51:31.238 信息 - 访问过的分支机构 7 个,共 122 个 (5.73770491803279) 03:51:31.238 信息 - 03:51:31.238 INFO - ==== 替代结果(包括所有方法,包括那些没有相应来源的方法)==== 03:51:31.238 信息 - 替代访问类 11 的 25 (44) 03:51:31.238 信息 - 替代访问方法 23 of 166 (13.855421686747) 03:51:31.488 信息-传感器 org.sonar.plugins.csharp.gallio.GallioSensor@964f8e 完成:22314 毫秒 03:51:31.488 信息 - 传感器 ProfileSensor... 03:51:32.145 信息 - 传感器配置文件传感器完成:657 毫秒 03:51:32.145 信息 - 传感器 ProfileEventsSensor... 03:51:32.160 信息 - 传感器配置文件事件传感器完成:15 毫秒 03:51:32.160 信息 - 传感器 ProjectLinksSensor... 03:51:32.160 信息 - 传感器 ProjectLinksSensor 完成:0 毫秒 03:51:32.160 信息 - 传感器版本事件传感器... 03:51:32.176 信息 - 传感器版本事件传感器完成:16 毫秒 03:51:32.176 信息 - 传感器 org.sonar.plugins.csharp.gallio.TestReportSensor@412739... 03:51:32.957 信息 - 传感器 org.sonar.plugins.csharp.gallio.TestReportSensor@412739 完成:781 毫秒 03:51:33.410 信息 - 执行装饰器...

当我从命令行使用 Nunit-console.exe 运行它时。我得到相同的结果。但是当我以管理员身份从命令行使用 Nunit-console.exe 运行它时。我得到以下输出:

测试运行:101,错误:0,失败:0,不确定:0,时间:27.3760719 秒 未运行:0,无效:0,忽略:0,跳过:0

所以我认为我需要以 Sonar 的管理员身份运行这些测试。我该怎么做?

我还尝试以管理员身份从 (gallio) Icarus GUI Test Runner 运行这些测试,并且所有测试都通过了。如果我在常规模式下运行,它们不会通过。

【问题讨论】:

  • 能否请您添加显示失败的日志摘录?
  • @Fabrice-SonarTeam 感谢您的回复。我在我的帖子中添加了更多信息。您对此有什么建议吗?

标签: nunit sonarqube gallio opencover


【解决方案1】:

如果以管理员身份启动单元测试执行成功,您应该想知道为什么您的测试需要这些权限才能正确执行。

使您的分析通过的第一个解决方案是以管理员身份运行 Sonar 分析:Gallio 命令将使用同一用户运行,因此应该会成功。

第二种(更好的)解决方案是重做您的测试和/或其配置,以确保它们不需要管理员权限即可成功。

【讨论】:

  • 我正在使用第一个解决方案。我以管理员身份运行声纳,但以管理员身份运行gallio.echo 的测试没有成功。如果我以管理员身份使用 nunit-console 而不是 gallio.echo 运行 opencover 命令行,它们就会通过
  • 我不知道为什么,但是当我设置 sonar.gallio.runner-Isolated Process 时它起作用了。所以我想以管理员身份运行它不是问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多