播放2.1 /走在帐户javaagent同时运行测试(Play 2.1 / taking in ac

2019-10-18 02:35发布

我的目标是推出包含我的播放应用程序中我的集成测试。

要做到这一点,我用的IntelliJ通过启动它们。 这些测试需要春天AspectJ织,所以我一种高精度在我的IntelliJ测试的conf这个VM参数:

-javaagent:/Users/myName/.ivy2/cache/org.springframework/spring-instrument/jars/spring-instrument-3.2.2.RELEASE.jar

整个工程。

现在,我希望能够用简单的通过命令行来启动这些play通过以下命令test-only命令。

首先,我看这个帖子对付添加任何javaagent播放应用程序的方式。

因此,我修改我的戏的build类似这样的文件,添加了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织我的测试护理?

Answer 1:

由于通过@Igor罗曼诺夫在上面的评论,在这里我的解决方案中提供的链接:

val myApp = play.Project(appName, appVersion, appDependencies).settings(
    Keys.javaOptions in (Test) +=
     "-javaagent:/Users/myName/.ivy2/cache/org.springframework/spring-instrument/jars/spring-instrument-3.2.2.RELEASE.jar",
    // code remaining 

这使得应用负载时编织类来处理Spring的AspectJ的。

整个工作得很好:)(SBT与0.12.3,斯卡拉2.10测试和播放2.1)



文章来源: Play 2.1 / taking in account a javaagent while running tests