是否有任何免费的工具允许对代码进行增量静态分析(对于SVN,最好是Git)?目前我们使用的是声纳(我认为是2.12?)但问题是,分析我们项目中的所有代码所需的时间是40-60分钟。我们需要把它乘以,因为我们有几个分支在不同的子项目上工作。
这就是为什么我正在寻找一个工具,它可以只从最近的提交(据我所知Sonar不支持)分析代码,或者只分析在过去的X小时/天/任何情况下修改过的代码。
我找到了Sonar的截止插件,据说它可以做我想做的事情(只检查在某个日期后修改的文件中的代码),但是:
如果它只检查上一次提交时的代码,那就太完美了,但我还没有看到。
还有一个附带的问题:每次提交后运行分析(即使用hudson插件)是一件好事还是应该避免?在我的上一个团队,我们有这样的声纳运行,如果我们“弄坏了它”,我们会收到一封即时的电子邮件(添加了一个重要/关键的代码)。这非常方便,因为我们知道谁是错误的(根据来自提交的信息)。或者我们应该减少分析的频率(比方说每周一次)?在这种情况下,我必须检查Sonar是否能够说出是谁提交了有问题的代码。
发布于 2012-01-19 11:33:19
很少,特别是因为很多工具/规则依赖于遍历可能的堆栈来限制错误阳性的数量。因此,一个程序集中的更改也需要对调用程序集进行重新评估,这并不像从外部看上去那么简单。
要加快静态分析的速度,请考虑投资于内存磁盘或SSD来存储源和二进制文件。使用多核机器,拥有足够的内存,并尽可能运行这些工具的x64版本。许多这些工具首先是I/O,然后是CPU限制。大多数改进可以通过减少系统的延迟和吞吐量以及需要的交换量(通过拥有足够的内存)来进一步减少I/O。
您还可以使用构建服务器上的伙伴构建/验证搁置集构建将构建时间卸载到不同的机器上,这些机器可以在开发人员之间共享。
发布于 2012-01-19 13:57:14
还有一些静态分析工具,如:
很有可能你会发现它对声纳有用的替代。
您没有提到是否使用持续集成工具。您可能需要启动并运行它,以便使用这些工具来运行检查。
发布于 2017-05-06 12:22:32
我意识到我去派对迟到了,但还有另一个可能与你相关的工具:团队标尺
Teamscale连接到存储库(例如Git或SVN),并在每次提交之后增量地分析代码。这样,您几乎在提交后立即得到有关新的/固定代码问题的反馈。您还可以看到您的代码的完整历史,黑名单假阳性,等等。(完全披露:我是一个团队规模的开发人员)
https://stackoverflow.com/questions/8806445
复制相似问题