cobertura报告没有停止tomcat

时间:2011-12-23 08:41:47

标签: tomcat6 code-coverage report cobertura

我按照为cobertura报告给出的步骤,我生成了报告,其中包含以下网址Cobertura on Tomcat

中给出的步骤

但现在我的问题是在不停止tomcat的情况下生成cobertura报告

1 个答案:

答案 0 :(得分:0)

只有两种方法可以创建覆盖数据文件。

  1. 停止Tomcat
  2. 执行一段代码,告诉cobertura写入文件
  3. 关于第二种方法:在测试运行后,您必须自己调用此函数。您可以(例如)将此代码放在servlet中(在测试结束时调用)。

    如果您没有停止Tomcat或执行该功能,您将无法获得覆盖数据文件。

    这是来自cobertura FAQ

      

    Cobertura仅在应用程序服务器关闭时写入coverage数据文件。我们不想在运行测试后停止我们的应用程序服务器。
      可以指示Cobertura编写数据文件。之一   你的类应该调用静态方法   net.sourceforge.cobertura.coveragedata.ProjectData.saveGlobalProjectData()。   例如,您可以在“注销”方法中添加类似这样的内容   您的网络应用程序:

    try {
        String className = "net.sourceforge.cobertura.coveragedata.ProjectData";
        String methodName = "saveGlobalProjectData";
        Class saveClass = Class.forName(className);
        java.lang.reflect.Method saveMethod = saveClass.getDeclaredMethod(methodName, new Class[0]);
        saveMethod.invoke(null,new Object[0]);
    } catch (Throwable t) {}