运行 Arquillian App Engine 容器测试

Running Arquillian App Engine Container Test

我正尝试在我的 IntelliJ 工作区中 运行 https://github.com/alesj/arquillian-container-gae 测试。但是它不会 运行 我试过了:

  1. Git 克隆然后导入到 IntelliJ(父)
  2. 然后运行测试:

这是我得到的:

我在 IntelliJ 的 Maven 运行ner 配置中添加了 -Dappengine.sdk.root,但它似乎没有任何影响。

我也试过 运行ning $mvn test 似乎工作正常:

Running org.jboss.arquillian.container.appengine.embedded.AppEngineEmbeddedClientTestCase
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.384 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

然而,当我在内部检查 -e 开关时,我可以看到这个错误:

Jan 05, 2015 4:22:22 AM com.google.appengine.tools.development.agent.AppEngineDevAgent premain
SEVERE: Unable to load the App Engine dev agent. Security restrictions will not be completely emulated.
java.lang.RuntimeException: Unexpected exception during cast.
        at com.google.apphosting.utils.clearcast.ClearCast$CasterImpl.cast(ClearCast.java:385)
        at com.google.apphosting.utils.clearcast.ClearCast.staticCast(ClearCast.java:252)
        at com.google.apphosting.utils.clearcast.ClearCast.staticCast(ClearCast.java:263)
        at com.google.appengine.tools.development.agent.AppEngineDevAgent.premain(AppEngineDevAgent.java:61)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
        at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
Caused by: java.lang.IllegalAccessException: Class com.google.apphosting.utils.clearcast.ClearCast$CasterImpl can not access a member of class com.google.appengine.tools.development.agent.$Proxy0 with modifiers "public"
        at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:101)
        at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:295)
        at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:287)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:398)
        at com.google.apphosting.utils.clearcast.ClearCast$CasterImpl.cast(ClearCast.java:383)
        ... 9 more
Running org.jboss.arquillian.container.appengine.embedded.AppEngineEmbeddedClientTestCase
Jan 05, 2015 4:22:23 AM org.jboss.arquillian.container.appengine.embedded.AppEngineSetup prepare
INFO: simple.war:

你运行这些测试怎么样?

我看到 Jetty Embedded Arquillian Container? 那不行。

我建议使用 GAE Arquillian Container for SDK。

或者更 hacky GAE Arquillian Container Embedded。

我们在 GAE TCK 中使用 GAE ARQ SDK 容器: