0

我有兴趣使用 JUnit 为我公司中的一组(非软件)工程师生成报告。与确保对象、方法等没有错误的典型 JUnit 测试不同,我想使用 JUnit 来确认大型日志文件中的结果是否在范围内并给出报告。

我的背景:有Java经验。我对 JUnit 4 很熟悉,过去一两个小时都在浏览 ANT 文档,我认为我很清楚它是如何工作的(我只是不知道所有的 XML 命令),而且我虔诚地使用 Eclipse。特别是 Eclipse June(最新)。

我的目标是创建大量测试用例来断言日志中的值是否在正确的范围内。然后可以在每个日志文件上一遍又一遍地运行测试类。每次运行后,结果将被添加到 HTML 文件中。

我知道 Ant 中的 JUnit Report 功能,但是我在将所有拼图正确组合在一起时遇到了很多麻烦。我知道我可以很容易地破解这个项目,但我想以正确的方式做到这一点。

任何人都可以为我指出正确的方向:

  • 制作正确的 build.xml 文件
  • 设置 JUnit 类/套件/运行器,以便它为给定的日志列表反复运行
  • 设置 ANT 使其输出 HTML/XML 以及如何将其指向正确的样式表以便可以在 IE/Firefox 中打开
  • 如何制作输出文件
  • 覆盖功能,以便报告是自定义的。
  • 后处理要覆盖的内容。(所以我可以将输出的 HTML 转换为 PDF 等)
  • 如何创建一个独立的可执行文件来自动完成所有这些 - 如果用户不手动提供输入,可能会加入一点 Swing。
  • 如何正确循环通过许多测试(目前我只是制作一个主要功能并做:

代码:

public static void main(String[] args) {
    JUnitCore junit = new JUnitCore();
    RunListener listener = new RunListener();
    junit.addListener(listener);
    Result result = junit.run(GearAndBrakeFaultLogReports.class);
    for (Failure f : result.getFailures()) {
        System.out.println(f.toString());
        System.out.println(f.getDescription());
        System.out.println(f.getTestHeader());
        System.out.println(f.getException());
        System.out.println(f.getMessage());
    }
    System.out.println("Done.");
}
  • 我有一种“hacky”的感觉,如果我知道如何正确插入 Ant,它将运行我的测试,生成 XML/HTML,并且我会得到所需的输出。

我想随着这个项目的发展,我会有更多的问题,但我认为克服最初的困难对我来说非常好!我知道有很多问题,所以任何帮助,我很乐意指出凹凸 :) 我希望熟悉这些工具的人可以通过将我指向网站、功能或示例项目来回答所有这些问题做类似的事情。

4

1 回答 1

1

从 JUnit 测试结果创建 PDF:http: //junitpdfreport.sourceforge.net/managedcontent/

作为一个单元测试框架,JUnit 报告是非常特定于软件工程的。虽然,您可能能够为非单元测试场景定制它,但这需要大量定制。与其他测试框架(例如 TestNG)不同,JUnit 不提供制作您自己的报告生成器的能力。然而,TestNG 可以用来运行 JUnit 测试,甚至除了它自己的报告之外,还可以生成一个 JUnit 报告。TestNG 可以运行您的 JUnit 测试,然后通过提供 org.testng.IReporter 接口的自定义实现来创建自定义报告。

http://testng.org/doc/documentation-main.html

我已经用 Java 写了很多年的报告,我强烈建议尝试一个报告工具,比如 JasperReports 和 iReport 工具。Jasper Reports 可以处理自定义数据源,例如您的日志文件,并生成多种格式的报告,包括 XML、HTML 和 PDF。

http://community.jaspersoft.com/project/ireport-designer

于 2013-05-25T01:59:27.490 回答