我正在使用INRIA的勺子为一些特定的声纳臭虫编写一个自动修复系统。我想为我的修复系统编写Junit测试,以检查错误是否已经修复。我想做这样的事情:
X = file;
Y = repair(X);
assert(! hasSonarqubeBug(Y));
Sonarqube分析仅适用于完整项目而非单个文件。 Sonarlint会对单个文件进行分析,但我不知道是否有办法用sonarlint编写这样的测试。
答案 0 :(得分:0)
使用Web api,您可以检索Sonarqube中任何类型组件(包括文件)的问题。 来自web api文档(http(s):// sonarhost:9000 // web_api / api / issues) 为 获取api / issues / search parameters componentKeys:
以逗号分隔的组件键列表。检索与之关联的问题 组件的特定列表(及其所有后代)。一个组件 可以是投资组合,项目,模块,目录或文件。
- 评论后编辑 -
要在更改源代码后获得新问题,您需要通过Sonarqube扫描程序进行构建和代码扫描。
除Sonarlint IDE插件外,没有本地预览分析(sonar.analysis.mode =扫描仪预览已弃用,很快就会消失)。
也许有一些关于f.e.的黑客攻击。无头的Eclipse和Sonarlint插件(假设您使用Eclipse,不知道与其他IDE无头)!?
您也可以使用不再开发或支持的Sonarlint CLI,
但它仍然可用here,但它可能不适用于较新的Sonarqube版本。
<强> TL; DR 强>
使用时,这取决于您的Sonarqube版本:
SQ 5.6.x,您可以使用带有sonar.analysis.mode = preview的扫描仪,这不会
将结果发布到SQ Server
SQ 6.x及更高版本,您可以尝试Sonarlint CLI是否仍然可以使用或尝试使用
无头的Eclipse。
否则你必须在Eclipse中运行你的unitests并检查Sonarlint插件。