gpt4 book ai didi

java - 运行时的 Clover Web 应用程序

转载 作者:行者123 更新时间:2023-12-01 19:25:08 24 4
gpt4 key购买 nike

您好,我是一名 Java Web 应用程序开发人员

我有一个问题,我想让 clover 在运行时为我的 Web 应用程序收集数据。

我确实通过向 Tomcat 添加参数(-Dclover.initstring.basedir="[PATH TO CLOVER DB]")成功地为单个应用程序做到了这一点。

效果很好。

但问题是我们有多个应用程序,我想一次性检查它们在运行时的数据覆盖率。

所以我尝试通过引用合并的数据库文件来执行相同的操作。它不起作用 - 合并的数据库文件在运行时不会更新。

你知道为什么或者我应该如何做吗?

谢谢

最佳答案

您在这里有一些误解:

首先,clover 数据库文件永远不会在运行时更新 - 仅在构建时更新。覆盖率数据记录在与 .db 文件并排放置的单独文件中。 .db 文件记录项目源的结构以及正在运行的检测应用程序所需的一些其他数据。

其次,合并数据库的唯一原因是(紧接着)对其执行报告。一旦 .db 被合并,就无法为其收集覆盖范围。在运行已检测的应用程序之前或期间,合并是不合适的。仅适用于之后。

这是你应该做的:

对于每个项目(对应于 Web 应用程序),添加一个唯一标识该 Web 应用程序的显式初始化字符串。例如对于 webapp Foo 有一个 foo.db 的 initstring,对于 webapp Bar 有一个 bar.db 的 initstring 等

在项目 Foo 的 build.xml 中:

<clover-setup initstring="foo.db"/>

在项目Bar的build.xml中:

<clover-setup initstring="bar.db"/>

现在您的 web 应用程序的 .db 文件名将是唯一的,因此当您添加 -Dclover.inistring.basedir=/path/to/folder/containg/the/db/files/时,每个 web 应用程序都不会践踏另一个。

因此,运行您的网络应用程序后,在/path/to/folder/containg/the/db/files/中,您会期望看到如下内容:

foo.db
foo.db9bl74u_g1e05ktv
foo.db9bl74u_g1e05ktv.1
bar.db
bar.db3wl21k_g1fbp9pb
bar.db3wl21k_g1fbp9pb.1

测试完网络应用后,您就可以对其进行报告。这时您可能想要合并。如果您希望为所有网络应用程序生成单个覆盖率报告,则需要合并。通常没有其他原因需要合并。

顺便说一句:您可能会在 forums.atlassian.com 上获得更快的答案。

关于java - 运行时的 Clover Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1636187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com