zhyiwww
          用平實的筆,記錄編程路上的點點滴滴………
          posts - 536,comments - 394,trackbacks - 0
          在使用ant+clover的時候,經常碰到下面的異常:
          BUILD FAILED
          com.atlassian.clover.registry.NoSuchRegistryException: Clover registry file "/tmp/clover-db/ant-coverage.db" does not exist, cannot be read or is a directory.
          Please ensure Clover has instrumented your source files.
          You may need to remove existing .class files for this to occur.
              at com.cenqua.clover.CloverDatabase.<init>(CloverDatabase.java:82)
              at com.cenqua.clover.CloverDatabase.<init>(CloverDatabase.java:60)
              at com.cenqua.clover.reporters.CloverReportConfig.getCoverageDatabase(CloverReportConfig.java:329)
              at com.cenqua.clover.reporters.Current.getCoverageDatabase(Current.java:126)
              at com.cenqua.clover.reporters.xml.XMLReporter.<init>(XMLReporter.java:52)
              at com.cenqua.clover.reporters.CloverReporter.buildReporter(CloverReporter.java:70)
              at com.cenqua.clover.tasks.CloverReportTask.generateReports(CloverReportTask.java:428)
              at com.cenqua.clover.tasks.CloverReportTask.cloverExecute(CloverReportTask.java:385)
              at com.cenqua.clover.tasks.CloverHtmlReportTask.cloverExecute(CloverHtmlReportTask.java:108)
              at com.cenqua.clover.tasks.AbstractCloverTask.execute(AbstractCloverTask.java:55)
              at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
              at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:616)
              at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
              at org.apache.tools.ant.Task.perform(Task.java:348)
              at org.apache.tools.ant.Target.execute(Target.java:357)
              at org.apache.tools.ant.Target.performTasks(Target.java:385)
              at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
              at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
              at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
              at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
              at org.apache.tools.ant.Main.runBuild(Main.java:758)
              at org.apache.tools.ant.Main.startAnt(Main.java:217)
              at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
              at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)

          Total time: 56 seconds

          這個錯誤是因為,沒有生成clover記錄數據庫造成的。
          經過多次的實驗,發現用下面的方法可以解決:
              <target name="clover.with" depends="clover.tasks">
                  <delete file="${clover.db.file}"/>
                  <clover-instr initstring="${clover.db.file}" srcdir="${src.dir}" destdir="${clover.tmp.dir}"></clover-instr>
              </target>
              
              <target name="clover.compile">
                  <javac     srcdir="${clover.tmp.dir}"  
                      destdir="${classes.dir}"
                      encoding="UTF-8"
                      includeantruntime="true"
                      failonerror="true"
                      verbose="false"
                      compiler="modern"
                      fork="true"
                      target="1.6"
                      nowarn="true">
                      <classpath refid="build.lib"/>
                  </javac>
              
              </target>

          這個地方,把clover.compile獨立出來編譯。有一個關鍵的地方是在粗體的部分,要指定一個臨時目錄,用來存放添加了stub的java類,也就說,獨立一個地方存放插了樁的java類,然后對其編譯,這樣就能在后續的junit.test.only任務執行的時候生成clover記錄數據庫了。
          希望對使用clover的朋友能有所幫助。





          |----------------------------------------------------------------------------------------|
                                     版權聲明  版權所有 @zhyiwww
                      引用請注明來源 http://www.aygfsteel.com/zhyiwww   
          |----------------------------------------------------------------------------------------|
          posted on 2010-12-14 15:19 zhyiwww 閱讀(571) 評論(0)  編輯  收藏 所屬分類: 軟件測試linux
          主站蜘蛛池模板: 乐安县| 南陵县| 仲巴县| 阿拉善右旗| 山阴县| 达州市| 新巴尔虎右旗| 济宁市| 昌黎县| 衡山县| 正定县| 永泰县| 晋宁县| 固阳县| 太原市| 乌鲁木齐县| 河南省| 繁昌县| 镶黄旗| 如皋市| 聊城市| 宜城市| 宿松县| 平顶山市| 南安市| 延庆县| 施甸县| 太湖县| 绥化市| 萨迦县| 枣庄市| 辽宁省| 永登县| 集贤县| 六盘水市| 苏尼特左旗| 石景山区| 大埔县| 边坝县| 共和县| 伊吾县|