EMMA无法转储覆盖数据:java.io.FileNotFoundException:coverage.ec(权限被拒绝)

时间:2014-04-14 15:38:39

标签: java tomcat code-coverage emma

我已完成以下步骤。

  1. 将emma.jar复制到classpath
  2. 检测代码并获得coverage.em
  3. 重新启动服务器并检查了tomcat日志(没有建议Emma收集覆盖数据)
  4. 开始对应用程序进行一些测试
  5. 停止了tomcat,当我停止tomcat时,我得到了以下内容。

  6. java.io.FileNotFoundException: coverage.ec (Permission denied)
           at java.io.RandomAccessFile.open(Native Method)
           at java.io.RandomAccessFile.<init>(RandomAccessFile.java:236)
           at com.vladium.emma.data.DataFactory.persist(DataFactory.java:656)
           at com.vladium.emma.data.DataFactory.persist(DataFactory.java:86)
           at com.vladium.emma.rt.RTCoverageDataPersister.dumpCoverageData(RTCoverageDataPersister.java:54)
           at com.vladium.emma.rt.RTExitHook.run(RTExitHook.java:32)
           at java.lang.Thread.run(Thread.java:701)
     Exception in thread "EMMA shutdown handler thread" java.lang.RuntimeException: EMMA failed to dump coverage data: java.io.FileNotFoundException: coverage.ec (Permission de
           at com.vladium.emma.rt.RTCoverageDataPersister.dumpCoverageData(RTCoverageDataPersister.java:71)
           at com.vladium.emma.rt.RTExitHook.run(RTExitHook
           at java.lang.Thread.run(Thread.java:701)
    

    有谁知道我错过了哪一步。如果有人能提供帮助,我将不胜感激。

    谢谢,

2 个答案:

答案 0 :(得分:0)

此错误:

java.io.FileNotFoundException: coverage.ec (Permission denied)

通常意味着您无权阅读该文件。验证运行该应用程序的用户是否具有读取coverage.ec的权限,以及该文件是否存在。

答案 1 :(得分:0)

如果您使用的是Win7,则可能需要检查工作区是否位于“C:\”下。这导致了我的权限问题。我将工作区更改为“C:\ Users \ [MyAccount]”,并且权限问题已经消失。