我们的是一个多模块maven项目,使用Clover2: Instr生成仪表化脂肪罐。我们使用命令行中的仪表化jar评估功能测试代码覆盖率,所有步骤如下所述:
所有单元测试都通过了三叶草4.0.2,但是当使用三叶草3.1.8版本时,它们在NPE中失败了。我们想使用旧版本,因为我们有商业许可证,而不是新版本。请帮助。
我无法共享日志,因为这可能会违反我的组织政策。分享摘录
Tests run: 6, Failures: 6, Errors: 0, Skipped: 0, Time elapsed: 0 sec <<< FAILURE!
com.***.*.*.*.*.drools.*.*************UnitTest.testKnowledgeAgentInitialization() Time elapsed: 0 sec <<< FAILURE!
java.lang.NullPointerException
at com.***.*.*.*.*.drools.*.*************UnitTest.testKnowledgeAgentInitialization(*************UnitTest.java:149)
Parent POM for clover:
<profiles>
<profile>
<id>instrumentation</id>
<activation>
<property>
<name>instrumentation</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>com.atlassian.clover</groupId>
<artifactId>clover</artifactId>
<version>${version.clover}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>maven-clover2-plugin</artifactId>
<version>${version.clover}</version>
<configuration>
<license>${clover.license}</license>
<includesTestSourceRoots>false</includesTestSourceRoots>
</configuration>
<executions>
<execution>
<id>site</id>
<phase>pre-site</phase>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
We are using Surefire to run Unit tests
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14.1</version>
<configuration>
<includes>
<include>**/*UnitTest.java</include>
</includes>
</configuration>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<testNGArtifactName>none:none</testNGArtifactName>
<reportsDirectory>${project.build.directory}/surefire-reports/testng</reportsDirectory>
</configuration>
</execution>
<execution>
<id>test-testng</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<junitArtifactName>none:none</junitArtifactName>
<reportsDirectory>${project.build.directory}/surefire-reports/junit</reportsDirectory>
</configuration>
</execution>
</executions>
</plugin>
从日志中添加额外的堆栈,尽管它并没有给出太多的信息
正在运行com..air.supply..drools.ruleengine。ApplyQueryValueThrottleEngineUnitTest测试运行:4,失败:4,错误:0,跳过:0,运行时间:0.27秒
com.air.supply....drools.ruleengine.ApplyQueryValueThrottleEngineUnitTest.testNoMhingRule()经过时间:0.266秒
com..空气供应...drools . rule engine . applyqueryvaluethrottleengineunitest . testmhingrule()所用时间:0秒
如Clover的4.0发行说明所述,Clover 4.x是与Clover 3.x不兼容的二进制文件。因此,您必须确保不使用 Clover 3.x 来检测代码,同时在运行时提供 Clover 4.x JAR(反之亦然)。
特别是,确保您的构建工作区和~/.m2本地缓存都不包含由错误的Clover版本检测的JAR文件——这是以前的构建遗留下来的。
在工作区中运行“mvn clean”。从 ~/.m2 中删除所有“*-三叶草.jar”文件。如果您将'clover2:setup'与Maven的'install'目标一起使用,请删除名称中不包含“-clover”后缀的JAR文件,其中包含检测代码(如何识别JAR是否包含检测代码?它将具有*.class文件,其名称中包含“$__CLR”)。
请参阅:https://confluence.atlassian.com/display/CLOVER/Clover4.0版本说明
我们新建立了一个哈德逊(是的...哈德逊,不是Jenkins)CI。哈德逊的工作安排如下 a.连接到IBMClearCase存储库以下载最新的源代码 b.编译所有java源代码并创建一个WAR文件(通过运行项目的pom.xml) c.将其部署到Tomcat6服务器 现在,我想更进一步——在这个过程中引入自动“静态代码分析器”。< br > 我在Hudson实例中安装了PMD/Clover/Java
我一整天都在研究这个问题,还没有找到解决方案,所以我想求助于stackoverflow社区。 我有一个Jenkins的服务器设置(版本1.454)。它被配置为使用Maven(版本3.0.4)执行构建。构建命令如下: Jenkins安装并配置了声纳插件。我的声纳安装(版本3)与jenkins在不同的服务器上。构建完成后,我可以在声纳上看到结果(构建的基础知识)。 我已将clover插件(sonar-
问题内容: 有人可以解释一下为什么在第一种情况下检测到空指针,而在另一种情况下却没有吗? 也许他总是看第一种类型,但是为什么他只在条件为假的情况下才这样做。 问题答案: 当您使用三元运算符时, 转换时,类型1和类型2必须具有相同的类型。首先,它实现了type1,然后实现了type2。 现在看看你的情况 因为is 并且它将作为原始,并且因为正试图将其转换为。因此为空指针。 在哪里一样棘手的测试5 由
我有一个主页。我正在尝试使用测试注释测试TestNG中的页面标题。我得到了testTitle()的NullPointerException。url正在打开。
我正在使用CSV reader从获取数据,并在使用DataProvider的测试函数中使用该数据。
在unittest中,我可以在一个类中设置变量,然后这个类的方法可以选择它想要使用的任何变量... 所以在unittest中,很容易将一组测试放在一起,这些测试可以放在一个类下,然后为不同的方法使用许多不同的变量(varA和varB)。在pytest中,我在conftest.py中创建了一个fixture,而不是在unittest中创建了一个类,如下所示。。。 对于两个不同的函数,我在不同的文件中