并非所有jUnit测试用例都在使用PowerMock和easymock、Surefire为Maven项目运行
在Maven项目中,我使用PowerMock easymock运行jUnit测试用例。但是,在执行“mvn清洁安装”时,我的输出低于并非所有jUnit测试用例都在使用PowerMock和easymock、Surefire为Maven项目运行,maven,junit,easymock,powermock,surefire,Maven,Junit,Easymock,Powermock,Surefire,在Maven项目中,我使用PowerMock easymock运行jUnit测试用例。但是,在执行“mvn清洁安装”时,我的输出低于 T T S T S 运行测试套件 测试运行:2,失败:0,错误:0,跳过:0,所用时间:0.621秒 结果: 测试运行:2,失败:0,错误:0,跳过:0 但是我有很多其他的测试用例。 下面是pom.xml的一部分 <dependency> <groupId>junit</groupId> &l
T T S T S 运行测试套件 测试运行:2,失败:0,错误:0,跳过:0,所用时间:0.621秒 结果: 测试运行:2,失败:0,错误:0,跳过:0
但是我有很多其他的测试用例。 下面是pom.xml的一部分
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-easymock-release-full</artifactId>
<version>1.4.12</version>
<type>pom</type>
</dependency>
朱尼特
朱尼特
4.8.2
测试
org.easymock
轻松的
3.1
测试
org.powermock
powermock easymock发布已满
1.4.12
聚甲醛
如果我删除PowerMock依赖项并执行“mvn清洁安装”,所有测试用例都可以正常运行。但我必须使用PowerMock。如何解决这个问题?我猜您的一些测试用例没有运行,您尝试过这个吗
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.13</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.13</version>
</dependency>
</dependencies>
</plugin>
<properties>
<powermock.version>1.5</powermock.version>
</properties>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-easymock</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
org.apache.maven.plugins
如果您使用的是jUnit
然后执行“mvn清洁安装”
解决方案2:
在pom.xml中添加以下代码
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.13</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.13</version>
</dependency>
</dependencies>
</plugin>
<properties>
<powermock.version>1.5</powermock.version>
</properties>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-easymock</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
1.5
org.powermock
详情
所有学分都归迪帕克我也有同样的问题,我花了一段时间才弄清楚。我的安装程序引入了一个旧版本的jboss.javassist,奇怪的是,它完全阻止了PowerMockRunner的工作
值得注意的是,我还有一个混合的JUnit/TestNG环境。我以前尝试过添加多个surefire提供者的解决方案,但也没有成功(使用surefire 2.14.1)。升级到surefire 2.17后,我的JUnit和TestNG测试都开始运行,而无需声明任何surefire提供程序。事实上,JUnit提供程序为我抛出了一个错误,因为我正在使用组。显然,TestNG提供程序允许自由格式的文本(例如“集成”),而JUnit提供程序需要类路径(例如“com.example.UnitTests”)
这是我的插件部分
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<groups>spring, unit, integration</groups>
<systemPropertyVariables>
<java.awt.headless>true</java.awt.headless>
<org.apache.activemq.default.directory.prefix>target/test/</org.apache.activemq.default.directory.prefix>
<log4j.configuration>file:${project.basedir}/src/test/resources/log4j.properties</log4j.configuration>
</systemPropertyVariables>
<argLine>${surefire.args}</argLine>
</configuration>
</plugin>
maven surefire插件
2.17
弹簧、单元、集成
真的
目标/测试/
文件:${project.basedir}/src/test/resources/log4j.properties
${surefire.args}
。。。以及相关的测试部门
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.9.5</version>
<scope>test</scope>
</dependency>
<!--
PowerMock versions are compatible with specific Mockito versions.
https://code.google.com/p/powermock/wiki/MockitoUsage13
-->
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.5.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.5.4</version>
<scope>test</scope>
</dependency>
<!-- without this PowerMock tests don't run in maven -->
<dependency>
<groupId>jboss</groupId>
<artifactId>javassist</artifactId>
<version>3.8.0.GA</version>
<scope>test</scope>
</dependency>
org.mockito
莫基托所有
1.9.5
测试
org.powermock
powermock-module-junit4
1.5.4
测试
org.powermock
powermock api mockito
1.5.4
测试
jboss
javassist
3.8.0.GA
测试
我最近遇到过这样一种情况,PowerMock测试被运行,但没有包含在surefire覆盖率报告中。我们发现问题与仪器有关
我将注意到,我们的大多数测试都使用TestNG运行。通常,我们只在需要利用PowerMock时使用JUnit
以下是POM代码片段:
警告:使用JaCoCo进行代码覆盖率分析的首选方法是
实时仪器。脱机检测有几个方面
缺点,只有在明确特定场景时才应使用
需要此模式。请查阅有关脱机的文档
在使用此模式之前,请先进行检测
那么,您是否尝试通过将所有测试用例文件放在mvn sure fire插件中来运行它,并具有PowerMock依赖性。我认为您错过了一些依赖性,对于PowerMock-module-junit4,请查看以下链接:干得好,伙计。你的两个解决方案都有效:):)现在我在想哪一个更好的解决方案:D谢谢,洛蒂更喜欢powermock-module-junit4的依赖性,这会更自然。。无论如何,这取决于你。。。哥们儿。