Моменты с JDK
JMockit можно запускать под JDK 1.5+. Тестировать можно код написанный под любой JDK.
По разному запускаются тесты для JDK 1.5 и JDK 1.6+.
В случае JDK 1.5 нам нужно подключать JMockit как агент:
-javaagent:/proper/path/jmockit.jarВ JDK 1.6+ достаточно чтобы JMockit просто был в класспазе.
JUnit & TestNG
Есть тонкость запуска также для JUnit. В этом случае нам нужно побеспокоиться чтобы джарник JMockit был обязательно в класспасе перед джарником JUnit.Для TestNG 6.2+ это не обязательно. Для версий ниже опятьже jmockit.jar нужно подключать как агент.
Apache Ant конспект
Очень важно в вызове junit таска ипользовать отдельную инстанцию JVM.
<junit fork="yes" forkmode="once" dir="directoryContainingJars">
<!-- If needed (eg, when running on JDK 1.5), uncomment the following JVM argument:
<jvmarg value="-javaagent:jmockit.jar"/> -->
<classpath path="jmockit.jar"/>
<!-- To generate (if desired) a code coverage HTML report: -->
<classpath path="jmockit-coverage.jar"/>
<!-- Additional classpath entries, including the appropriate junit.jar -->
<batchtest>
<!-- filesets specifying the desired test classes -->
</batchtest>
</junit>
Apache Maven
Все просто, только в случае junit нужно не забывать зависимость джеймокит размещать до зависимости на джейюнит.<properties>
<jmockit.version>desired version</jmockit.version>
</properties>
<dependencies>
<dependency>
<groupId>com.googlecode.jmockit</groupId><artifactId>jmockit</artifactId>
<version>${jmockit.version}</version><scope>test</scope>
</dependency>
</dependencies>
Если же у нас JDK 1.5 или мы тестируем TestNG 6.2- то нужно не забыть плагин для тестирования настроить на директиву с агентом:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>
-javaagent:"${settings.localRepository}"/com/googlecode/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar
</argLine>
</configuration>
</plugin>
Комментариев нет:
Отправить комментарий