2013-05-07 24 views
1

我的目標是推出包含我播放應用程序中我的集成測試。播放2.1 /走在帳戶javaagent同時運行測試

要做到這一點,我用的IntelliJ通過啓動它們。 這些測試需要春天AspectJ織,因此我在的IntelliJ測試的conf一種高精度這個VM參數:

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

的整體運行。

現在我希望能夠通過使用命令test-only命令後面的簡單play命令通過命令行啓動它們。

首先,我讀this後處理的方式添加任何javaagent播放應用程序。

因此,我修改我的戲的build文件中像這樣,加上春天的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 "[email protected]" 

但是,我的測試只是失敗..抱怨缺少Spring的AspectJ織。 但它肯定是邏輯,因爲test-only啓動另一個進程...

有沒有辦法讓我的測試關心aspectJ使用javaagent編織?

+1

看看這個問題:http://stackoverflow.com/questions/15201034/how-to-調試測試與 - 播放2-0/15920921#15920921 – 2013-05-07 21:33:21

+0

@Igor羅曼諾夫真棒;) – Mik378 2013-05-08 13:07:31

回答

2

多虧了@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)