我目前正在评估三叶草,想知道如何最好地使用它。首先,我想了解它在概念上是如何工作的。
1)仪器是什么意思?实现声明中是否附有测试电话?
2)这是怎么做的?为此,测试是否实际上是通过一些特殊的执行上下文(类似于JRebel)执行的?还是更像静态分析?
3)“三叶草运行”后,将某些数据库保存到磁盘,并基于此生成报告,对吗?是否可以访问DB格式?我的意思是我可以对此发表自己的分析吗,例如使用我自己的报告工具?数据库确切包含哪些信息?我可以在那里看到测试和实现之间的映射吗?
4)是否还有其他工具可以找到测试和实现之间的映射?不仅数字,而且哪个测试实际上涵盖了一行代码...
谢谢,巴斯特尔。
最佳答案
在Clover进行代码检测期间,它检测哪些方法是测试方法(默认情况下,它识别JUnit3/4和TestNG)。此类方法将获得其他检测说明。简而言之,输入一种测试方法通常会实例化一个专用的覆盖率记录器,该记录器专门为此测试测量覆盖率。有关三叶草中每个测试记录策略的更多信息:
三叶草数据库(clover.db)包含有关代码结构(包,文件,类,方法,语句,分支)的信息,还包含有关测试方法的信息。也有单独的覆盖率记录文件(在运行时生成),其中包含有关给定代码元素的“点击数”的信息。 Clover支持全局覆盖(即整个运行)和每次测试覆盖(即单个测试的覆盖)。
更多信息在这里:
该API仍在开发中(https://jira.atlassian.com/browse/CLOV-1375),但是有可能获得基本信息。看:
有关数据库模型和代码示例的更多详细信息。
但是问题是:您真的需要手动读取该数据库吗?您写道:
Clover已经提供了这样的映射-例如,在HTML报告中,如果单击源代码行,它将弹出单击此行的测试方法列表。
PS:我是Atlassian的Clover开发人员,如有任何疑问,请随时与我联系。
关于java - 三叶草:它是如何工作的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12723451/