4

这是我想做的事情:

1) 正在运行的应用程序已被检测。字节码是干净的 - 意味着应该在字节码级别添加跟踪信息。

2) 正在运行的应用程序可能会运行数天或数周。我想每天有一个跟踪文件。

3) 如果跟踪期结束,我想将所有跟踪文件合并在一起,并为开发人员生成一份 HTML 报告。

这是我到目前为止调查的内容:

  • Emma 在解决问题 1) 时似乎做得很好 动态检测非常简单。

  • Cobertura 说他们能够进行字节码检测,但我还没有找到一个例子。

  • Cobertura 和 Emma 都没有谈论定期跟踪文件转储。

  • 我不确定三叶草。也许有人以前看过它。

以前有人这样做过并且可以帮助我解决这些问题吗?

谢谢,detlef

4

4 回答 4

2

Cobertura 将很好地检测您的代码。它将转储出可以合并在一起的 .ser 文件。

我唯一没有尝试过的部分是每天拍摄快照。我的两个想法是尝试

a) 如果您复制 .ser 文件并删除旧的 .ser 文件,会发生什么情况。它会崩溃,还是会创建一个新的 .ser 文件?如果它创建一个新文件,这将起作用。

b)是否可以每天关闭您的应用程序 1 分钟,以复制和删除 .ser 文件?

无论哪种情况,一旦您拥有一堆 .ser 文件,就很容易将它们合并在一起并创建一个 html 报告。

于 2010-07-23T15:57:19.877 回答
1

三叶草也不错。

于 2010-07-24T00:25:28.787 回答
0

我们的SD Java 测试覆盖率工具允许您在执行时通过调用特殊方法随时转储测试覆盖率快照。

如果您有一个长时间运行的应用程序并且想要每日快照,您可以添加一个等待 24 小时的额外线程,转储快照,然后重新进入睡眠状态。每个快照都有自己的带日期戳的文件。您可以将任意数量的这些合并在一起,并生成一个 XML 覆盖率报告(然后是您喜欢的格式的 HTML 报告)。

于 2010-07-24T03:32:18.890 回答
0

免责声明:我是 Atlassian 的 Clover 开发人员。

关于您的要求和 Clover 功能:

正在运行的应用程序可能会运行数天或数周。

如果您只想收集全球覆盖数据,那应该没问题。

如果您还想收集每个测试的覆盖率,那么我想运行测试数周会产生大量数据,并且可能会严重影响性能。但我相信你在这里谈论的不是这种情况。

我想每天有一个跟踪文件

Clover 允许以指定的时间间隔设置数据转储(例如 <clover-setup flushpolicy="interval" flushinterval="86400000">)。有关详细信息,请参阅三叶草设置

值得一提的是,Clover 在将覆盖数据刷新到磁盘后不会重置计数器。所以实际上不需要每天写一个trace文件(当然你想写也可以),Clover最后写完所有数据就够了。

我想将所有跟踪文件合并在一起并为开发人员生成一份 HTML 报告

在 Clover 中得到这个没问题。这实际上是在报告生成期间查找与给定数据库相关的所有覆盖记录文件的默认行为。

如果需要,还可以生成多个报告,其中包含它们之间的链接。

于 2013-11-04T13:53:42.117 回答