JMockit - initialization problem
As I understand it, this exception is thrown when one attempts to call a JMockit method, while JMockit has not been properly initialized.
Make sure you follow the JMockit installation instructions, especially points 3 and 4. If the JMockit jar comes after the JUnit jar in the classpath, it might cause problems.
The accepted answer has fallen a little out of date regarding the links so it's worth mentioning the various solutions directly.
To fix this problem do one of the following:
1 - Specifiy a javaagent
Add this to your JUnit execution environment (for your version):
-javaagent:path/to/your/jmockit/jmockit-0.998.jar
2 - configure the Surefire plugin in Maven to avoid it
Add the following to your Maven configuration (choose your own versions)
<!-- JMockit must be before JUnit in the classpath --> <dependency> <groupId>mockit</groupId> <artifactId>jmockit</artifactId> </dependency> <!-- Standard unit testing --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency>
Ensure that your Surefire plugin is configured as follows (for your particular versions):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.3</version>
<configuration>
<argLine>-javaagent:${settings.localRepository}/mockit/jmockit/0.998/jmockit-0.998.jar</argLine>
<useSystemClassLoader>true</useSystemClassLoader>
</configuration>
</plugin>
3 - Use the JUnit @RunWith annotation
Add this JUnit runner annotation on each and every test class
@RunWith(JMockit.class)
public class ExampleTest {}