我的目标是启动我的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 应用程序的方法。
因此,我像这样修改我的 Playbuild
文件,添加 Spring 的 javaagent:
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 的 aspectJ 编织。但这肯定是逻辑,因为test-only
启动了另一个进程......
有没有办法让我的测试关心使用 javaagent 编织的 aspectJ?