1.36
test
JUnit4.x及以下用户特别注意事项
如果你是通过mvn test来运行你的测试程序 , 请确保JMockit的依赖定义出现在JUnit的依赖之前。
<!-- 先声明jmockit的依赖 -->
<dependency>
<groupId>org.jmockit</groupId>
<artifactId>jmockit</artifactId>
<version>1.36</version>
<scope>test</scope>
</dependency>
<!-- 再声明junit的依赖 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
如果你是在Eclipse中运行/调试你的测试程序, 需要确保JMockit出现在JUnit之前。你可以提供Up,Down来调整。
JMockit Coverage配置
如果你还需要使用JMockit的代码覆盖率功能,你需要在Maven pom.xml中如下定义
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-javaagent:"${settings.localRepository}/org/jmockit/jmockit/1.36/jmockit-1.36.jar=coverage"</argLine>
<disableXmlReport>false</disableXmlReport>
<systemPropertyVariables>
<coverage-output>html</coverage-output>
<coverage-outputDir>${project.build.directory}/codecoverage-output</coverage-outputDir>
<coverage-metrics>all</coverage-metrics>
</systemPropertyVariables>
</configuration>
</plugin>
常见错误
java.lang.IllegalStateException: Native library for Attach API not available in this JRE
Caused by: java.lang.UnsatisfiedLinkError: no attach in java.library.path
遇到这种情况,你是用JRE来跑测试程序的,需要切换成JDK才可以。