您在这里有一些误解:
首先,clover db 文件永远不会在运行时更新 - 只会在构建时更新。覆盖数据记录在 .db 文件旁边的单独文件中。.db 文件记录了项目源的结构以及正在运行的检测应用程序所需的一些其他数据。
其次,合并数据库的唯一原因是(立即)对其执行报告。合并 .db 后,无法为其收集任何覆盖范围。在检测应用程序运行之前或运行期间,合并是不合适的。之后才合适。
这是你应该做的:
对于每个项目(对应于 webapp),添加一个明确的 initstring 来唯一标识 webapp。例如对于 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"/>
现在,您的 webapps 的 .db 文件名将是唯一的,因此当您添加 -Dclover.inistring.basedir=/path/to/folder/containg/the/db/files/ 时,每个 webapp 都不会互相践踏。
因此,在运行您的 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
一旦你测试了你的 web 应用程序,你就可以报告它们。这是您可能想要合并的时候。如果您希望为所有 webapps 生成一个单一的覆盖率报告,您将合并。通常没有其他理由合并。
顺便说一句:您可能会在 forums.atlassian.com 上获得更快的答案。