代码之家  ›  专栏  ›  技术社区  ›  Glen

监控多语言产品中的代码度量

  •  1
  • Glen  · 技术社区  · 17 年前

    我们有一个由C++和java组成的产品。C++的东西是用make构建的,java项目是由一些蚂蚁项目和一些Mav2项目组成的。

    我正在寻找一种工具,它可以帮助我随着时间的推移从构建系统中获得有用的指标。例子包括

    * Total build time
    * C++ project build time
    * Java build time
    * Number of compiler warnings
    * Number of unit tests (run/passed/failed/errors). (Tests are written in cxxTest and JUnit)
    * Acceptance test metrics (run/passed/failed/errors)
    * Total number of files
    * LOC (to keep the managers happy)
    

    为一次性报告获取这些指标非常简单。我真正需要的是一个简单的工具,可以让我随着时间的推移绘制这些指标。

    一个非常有用的简单用例是编译器警告,因为我们可以看到随着时间的推移警告的数量趋向于零。(我们不能一次解决所有问题,因为这是一个相当大的项目,我们没有时间进行大爆炸)。它还可以帮助我们在新的警告出现时快速发现它们。

    Monitoring code metrics in Java over longer time period ,但我正在寻找一种语言不可知的东西

    编辑:为了清楚起见,我们使用CruiseControl作为CI服务器。我只是没有看到一个 容易的 将度量或基于时间的度量添加到其输出的方法。也许我错过了一些明显的东西。我好像 this 关于添加自定义指标的页面,但对我来说有点笨重。

    Build Id | Build Time | Metric       | Value 
    00000001 10:45 TestPassRate 95
    00000001 10:45 BuildTime 300
    00000001 10:45 C++BuildTime 200
    00000001 10:45 JavaBuildTime 50
    00000001 10:45 TestTime 50
    00000002 11:45 ......
    3 回复  |  直到 6 年前
        2
  •  0
  •   Aaron Digulla    17 年前

    您可能正在寻找CI服务器(持续集成)。这些服务器监视源存储库(CVS、Subversion等),并构建所有已更改的项目以及所有相关项目。

    TeamCity 但还有很多( list on wikipedia )

    [编辑]大多数CI服务器在构建后都会显示某种类型的报告(花费了多长时间、运行了多少测试等)。您所需要做的就是在构建之后触发一个程序,该程序获取此信息并将其保存在数据库中。

    您可以获取CI服务器的历史构建页面,但它们通常不会返回很远的地方,这就是为什么最好将数据保存在其他地方。如果您正在寻找一些简单的收获方法,请尝试使用Python Beautiful Soup . 否则,Java和 HTTP Client jTidy 这是一条路要走。

        3
  •  -1
  •   Phil Miller    17 年前

    rrdtool可能会提供您想要的那种历史视图。您只需要让CI服务器在每次运行时将生成报告转储到正确的位置,rrdtool就可以从中获取它。

    推荐文章