7

我正在尝试使用 Cobertura 应用代码覆盖率。该应用程序部署在 Tomcat 5 中,但是当我检测 .class 文件时,该应用程序停止工作。

这是我的步骤:

  • 编译应用程序(这在 tomcat 中运行)
  • 检测类文件。

    D:\test\cobertura-1.9.4.1\cobertura-instrument.bat --destination D:\test\instrument D:\src\path_to_app\main\target\webapp
    
  • 用. D:\src\path_to_app\main\target\webapp _D:\test\instrument

  • 通过 Catalina conf 或 war 文件在 Tomcat 中部署应用程序。(该应用程序不起作用)

有人有正确的步骤在 Tomcat 中使用 Cobertura 检测的类正确部署应用程序吗?

参考:http ://cobertura.sourceforge.net/faq.html

我正在使用 cobertura-1.9.4.1

4

2 回答 2

13

正确的步骤是:

  • 编译应用程序
  • 检测类文件。 D:\test\cobertura-1.9.4.1\cobertura-instrument.bat --destination D:\test\instrument D:\src\path_to_app\main\target\webapp (它创建的 cobertura.ser)

  • 用. D:\src\path_to_app\main\target\webapp _D:\test\instrument

  • 将 cobertura.jar 复制到 WEB-INF/lib
  • 直接在 Tomcat 中部署应用程序或通过 war 文件部署应用程序。
  • 将 cobertura.ser 复制到 tomcat 的当前目录(tomcat/bin 或 system32,否则会在错误日志中看到路径)
  • 使用该应用程序,并停止 tomcat 服务器。
  • 使用更新后的 cobertura.ser(在 system32 或 ...)构建报告(至少对我而言,大小不会改变)

参考: - http://cobertura.sourceforge.net/faq.html - JB Nizet 答案

于 2011-03-15T23:23:31.467 回答
0

“应用程序无法运行”是什么意思?您在 tomcat 输出/日志中有异常吗?它说什么?

我怀疑您在部署之前忘记将 cobertura jar 放在 webapp 的 WEB-INF/lib 文件夹中。显然,cobertura 检测添加的代码调用了 cobertura 引擎的方法,因此这些类必须在您的 webapp 中可用。

于 2011-03-14T22:19:20.763 回答