Tag: cobertura

为什么Cobertura在运行Eclipse插件时会报告0%的覆盖率?

(这些问题有很多,但是我能找到的所有问题都与Maven有关。在你提出这个问题之前,请注意这一点是重复的,请理解这与Maven没有任何关系。) 我在Eclipse中使用Cobertura来确定我的JUnit测试所涵盖的代码百分比。 我所有的99个unit testing都在Cobertura内外成功运行,但Cobertura报告说他们已经覆盖了我的代码的0%。 一世 : 我正在通过Eclipse插件运行Cobertura 我在Ubuntu上使用Java 6,特别是OpenJDK-AMD64 确保unit testing确实覆盖了我的代码的某些部分 确保Cobertura在我的所有src文件夹上运行我的所有测试文件夹 试图清理和重建 为什么Cobertura报告0%?

Cobertura覆盖和断言关键字

我对Cobertura测量的unit testing的线路覆盖范围很痛苦,因为我有assert声明未在测试中涵盖。 我应该测试assert离子,有没有办法让Cobertura忽略它们,这样它们不会影响我的测试覆盖率?

Cobertura ant脚本缺少Log4J类

我试图让Cobertura在我的ant剧本中运行,但我在开始时就被困住了。 当我尝试插入cobertura taskdef时,我错过了Log4J库。 Ant属性和类路径 我的目标 我想我做了Cobertura文档中描述的所有内容,但我得到了这个 Ant构建错误 BUILD FAILED build.xml:95: java.lang.NoClassDefFoundError: org/apache/log4j/Logger 在$ {cobertura.dir}里面有一个包含所有文件的lib目录。 我将它从cobertura发行版ZIP直接解压缩到该目录中。 我错过了一步吗? 到目前为止,我的配置出了什么问题?

cobertura-maven-plugin排除配置

我有一个Maven项目,在/src/test/java/test/com/mycompany/myproduct/android/viewtype2fragmentmapper/目录下有一个测试用例DefaultViewTypeToFragmentMapperTest.java 。 我希望将此测试用例排除在unit testing覆盖率计算之外。 为了实现这个结果,我配置了这样的插件: org.codehaus.mojo cobertura-maven-plugin 2.5.2 html xml test/co/**/*.class 但我仍然在报道报告中看到上述类别。 如何修复它以使测试用例不出现在报告中,并且不考虑其覆盖范围(根据报告为0%)?

unit testing通过Maven,但未通过Cobertura:“期望分支目标65处的堆栈图帧”

我最近在我的Java / Spring-MVC项目中添加了Cobertura插件。 奇怪的是,我的所有unit testing都在通过,并且当Maven进行初始测试运行时它们仍然通过,但是当Cobertura尝试运行测试时,它们都会失败,并显示相同的错误消息: Expecting a stackmap frame at branch target 65 in method xxx.xxxx.xxxx.xxxx;)V at offset 40 我不知道为什么会发生这种情况,甚至不知道如何修复它。 我搜索过互联网,但没有发现任何类似的问题。 我使用JUnit和spring-test-mvc进行测试。 谁看过这个吗?

我如何让Maven的Emma或Cobertura报告其他模块中的源代码报道?

我有一个带有Java代码的多模块Maven设置。 我的unit testing,在其中一个模块中,在多个模块中练习代码。 当然,模块具有相互依赖性,并且在测试执行之前根据需要编译所有相关模块中的代码。 那么:我如何获得整个代码库的覆盖率报告? 注意:我不是要问如何在多个模块中组合测试覆盖率的结果。 我问如何使用来自多个模块的检测代码在单个模块中获得测试的覆盖率。 任何对前者感兴趣的人都可以参考其他 问题 ,以及Crowne为Maven Dashboard和Sonar提出的建议。 我成功地使用纯Ant获得完整的报道。 [编辑:]我将开发运行时目录中的所有jar都检测到了一个临时目录; 将临时目录添加到类路径中; 然后使用批处理测试从Ant运行测试。 Ant可以从Maven运行,但这里的挑战是无缝集成(即,自动将所有类路径和源路径元素从Maven提供给Ant),这就是为什么我没有使用Maven的工具来实现此目的。 关于集成测试还有其他 问题 。 但是,默认情况下,默认情况下,每个项目的报告仅报告同一项目中代码的覆盖率,而我的测试则在多个项目中执行代码。 这篇西class牙语的文章可能是相关的。 这是另一篇特定于Seam的文章 。

我们应该测试控制台输出吗?

我正在使用一些遗留代码本身有一些System.out.print命令。 我的eCobertura插件显示这条线为红色,所以我想对它们进行unit testing。 在stackoverflow中,我找到了一种unit testing控制台输出的方法,我觉得非常有趣。 我是这样做的: private final ByteArrayOutputStream outContent = new ByteArrayOutputStream(); @Before public void setUpStreams() { System.setOut(new PrintStream(outContent)); } @After public void cleanUpStreams() { System.setOut(null); } @Test public void out() { System.out.print(“Some message from the system”); assertEquals(“Some message from the system”, outContent.toString()); } 到目前为止,测试变得很好,但是当我再次运行代码覆盖率插件时,我收到以下消息: 网络“Thread-0”中的exceptionjava.lang.NullPointerException net.sourceforge.cobertura.coveragedata.TouchCollector.applyTouchesOnProjectData(TouchCollector.java:186)at net.sourceforge.cobertura.coveragedata.ProjectData.saveGlobalProjectData(ProjectData.java:267) )at java.slang.Thread.run(Thread.java:662)的net.sourceforge.cobertura.coveragedata.SaveTimer.run(SaveTimer.java:31) 我有些疑惑: 尝试unit testingSystem.out.print()’s是否正确? eCobertura是否与此类测试兼容? […]

如何让Cobertura失败M2构建以实现低代码覆盖率

如果线或分支覆盖率低于给定阈值,我正在尝试将WAR项目构建配置为失败。 我一直在使用优秀的Java Power Tools书籍第455页提供的配置,但没有成功。 这是我的项目Maven 2 POM的相关片段: … org.codehaus.mojo cobertura-maven-plugin 2.2 80 80 90 90 clean check coverage-tests verify clean check au/**/*Constants.* au/**/*Constants.* … … 正如我所说,覆盖率报告工作正常,问题是如果线或分支覆盖率低于我指定的阈值,“安装”目标不会失败。 有没有人有这个工作,如果有的话,你的POM是什么样的,你使用的是哪个版本的Cobertura和Maven? 我正在使用Maven 2.0.9和Cobertura 2.2。 我已经尝试过谷歌搜索和阅读Cobertura文档,但没有运气(后者至少可以说是稀疏)。

当声纳分析绑定到多模块项目中的maven生命周期时,如何使SonarQube模块仅分析项目一次?

我想要实现的是将SonarQube分析集成到构建过程中,这样无论何时运行mvn clean install ,都会使用SonarQube分析代码。 我们希望将它用于本地分析以及在Jenkins上构建。 如果发现新问题,那么构建应该失败(我们希望使用构建断路器插件)。 这样开发人员就会知道,通过他的代码,他将引入新的问题,并且必须修复它们才能使构建工作。 当我运行mvn sonar:sonar ,分析需要30秒,这没关系。 但是,当我试图将sonar目标绑定到maven构建阶段时,会出现问题。 我绑定sonar来verify阶段。 构建需要5分钟 ,这太长了。 大约需要1分钟 。 没有SonarQube分析的构建本身需要30秒。 注意 (可能有助于弄清楚问题是什么):运行构建的项目中有多个模块,我想这就是问题所在。 它看起来像sonar:sonar目标被执行多次,每个子模块执行一次, 整个项目被多次分析(不仅是子模块)。 因此,我们有4个子模块,并且在构建期间生成了5次报告。 相反,我们只想分析整个项目一次,而不是5次。 在为所有模块生成cobertura报告之后,在构建结束时运行此1分析也很重要。 那么,如何将SonarQube分析集成到构建中,以便在为所有子模块生成cobertura报告之后,它最终只分析一次我的多模块项目一次? 父pom中的SonarQube插件属性: jdbc:url preview true true sonar.host:9000 java false Sonar%20way%20with%20Findbugs buildbreaker file:**/target/** development 项目中的插件配置: org.codehaus.mojo cobertura-maven-plugin package cobertura org.codehaus.mojo sonar-maven-plugin 2.5 verify sonar

Tomcat上的Cobertura

我正在尝试使用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:\test\instrument的检测类文件覆盖D:\src\path_to_app\main\target\webapp的类文件。 通过Catalina conf或war文件在Tomcat中部署应用程序。 (该应用程序不起作用) 是否有人使用Cobertura检测的类在Tomcat中正确部署应用程序的正确步骤? 参考: http : //cobertura.sourceforge.net/faq.html 我正在使用cobertura-1.9.4.1