Моя цель — запустить интеграционные тесты, содержащиеся в моем приложении Play.
Для этого я запускал их через Intellij. Эти тесты нуждаются в плетении Spring aspectJ, поэтому я уточнил в своей тестовой конфигурации Intellij этот аргумент VM:
-javaagent:/Users/myName/.ivy2/cache/org.springframework/spring-instrument/jars/spring-instrument-3.2.2.RELEASE.jar
Все работает.
Теперь я хочу иметь возможность запускать их через командную строку, используя простую команду play
, за которой следует команда test-only
.
Сначала я прочитал это сообщение о том, как добавить любой javaagent в приложение Play.
Таким образом, я изменяю файл build
моего Play следующим образом, добавляя javaagent Spring:
java ${DEBUG_PARAM} -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M ${JAVA_OPTS} -javaagent:/Users/myName/.ivy2/cache/org.springframework/spring-instrument/jars/spring-instrument-3.2.2.RELEASE.jar -Dfile.encoding=UTF-8 -Dplay.version="${PLAY_VERSION}" -Dsbt.ivy.home=`dirname $0`/../repository -Dplay.home=`dirname $0` -Dsbt.boot.properties=`dirname $0`/sbt/sbt.boot.properties -jar `dirname $0`/sbt/sbt-launch.jar "$@"
Тем не менее, мой тест просто терпит неудачу ... жалуется на отсутствующее плетение аспектов Spring. Но это, безусловно, логично, так как test-only
запускает другой процесс...
Есть ли способ заставить мой тест заботиться о плетении аспектов с помощью javaagent?