盲人的测试覆盖率报告的可访问性

时间:2011-12-20 11:46:12

标签: java accessibility code-coverage

我目前正在帮助我的团队成员掌握我们的新项目和我们正在使用的工具。我们使用Java作为主要语言。我的同事的一个特点是他是盲人。他主要与Emacs合作,并在终端中运行maven目标。

在我完成实施后,我发现检查我的测试覆盖率非常有用。我希望我的同事能够检查报道。我有两种获取此信息的方法:

  • 使用IntelliJ集成测试覆盖(它使用EMMA并在每行旁边显示绿色,红色或黄色)。非常方便,因为我在运行测试后立即可以看到这些信息,没有进一步的互动

    这对我的同事不起作用,因为他不能使用IntelliJ,并且它可能无法正常工作,因为没有覆盖信息的文字表示

  • 使用Cobertura报告。它们在绿色/红色中使用相同的行概念。它们适用于类中的整体覆盖等宏信息,但不适用于检查未覆盖哪一行。 实际上,他可以深入研究报告的HTML来源,找出哪一个有nbHitsUncovered类,但这看起来非常不切实际。

我真的想告诉他如何快速获取他的覆盖率数据。有没有人知道一种不依赖颜色显示覆盖率的工具?或者我们必须自己写吗? (例如,通过转换HTML报告)

3 个答案:

答案 0 :(得分:5)

我是一个完全盲目的开发人员,他使用Jaws for Windows屏幕阅读器在Windows上完成我的工作,因此这不会完全映射到您使用的开发人员。通过一些编程,看起来cobertura测试结果是最容易处理的。基于以下示例XML报告,将快速Perl脚本放在一起以检查命中计数为0的行应该不难。 https://raw.github.com/jenkinsci/cobertura-plugin/master/src/test/resources/hudson/plugins/cobertura/coverage-with-data.xml 我能够发现第24行是唯一一次执行0次而快速找到

的人
Hits="0"

虽然我能够找到未执行的行但是我必须向上滚动以找出该行所在的类和方法。快速的Perl脚本可以消除向后滚动和提供的需要线条所包含的包,类和方法更有效。 我看了一个使用谷歌浏览器的示例Emma HTML报告,它很容易访问。我可以说出哪些方法已经过全面测试,哪些方法没有。弄清楚执行哪些线条以及哪些线条不是更难处理。我可以告诉一个方法没有100%执行,然后会在报告中导航到它。然后我不得不使用我的屏幕阅读器提供的击键来宣布每行代码的颜色。我忘记了确切的颜色名称但我可以告诉那些已经和未执行的行,因为我的屏幕阅读器将它们列为具有不同的颜色。这工作但很慢,因为我不得不手动检查方法的每一行;由于我的屏幕阅读器无法自动通知颜色变化,因此未完全执行。我不确定你的开发人员会如何做同等的事情,因为我不知道他的确切辅助技术设置。

答案 1 :(得分:2)

我在Antoine周围进行了挖掘,因为我在项目中也使用了SONAR和Cobertura,并对您的问题很感兴趣。从我所看到的,当你告诉ANT任务生成“html”作为输出时,你可以获得所需的所有行信息,但正如你所指出的那样,它不是一种易于解析的格式(可能会有变化)。 / p>

使用SONAR,我告诉Cobertura输出“xml”,它给出了一个带有输出的coverage.xml文件。不幸的是,它不包括逐行数据,我看不到任何ANT task parameters来包含它来自Cobertura文档。

对我来说,名为cobertura.ser的文件包含您需要的所有数据,但只有HTML报告会显示给您。我相信你的问题的答案可能在于尝试从cobertura.ser中提取所需的序列化数据。

查看源代码,我可以看到以下类

net.sourceforge.cobertura.reporting.html.HTMLReport
net.sourceforge.cobertura.reporting.xml.XMLReport

我怀疑你可以尝试做的是将HTMLReport的副本作为基础并尝试编写与XML相同的输出,然后您可以根据自己的目的进行解析(或者调整HTMLReport使用的相同方法调用) XMLReport)。我可以在nbHitsUncovered中看到字符串HTMLReport,所以希望您只能编写一个类。

我用谷歌搜索过,看不到有人这样做过,但它看起来像是一个有用的增强功能。

答案 2 :(得分:0)

如何使用GreaseMonkey脚本搜索具有类nbHitsUncovered的所有行,并添加一些包含报告所需信息的列表/表?