Java 斯波克';s测试在Maven启动后失败

Java 斯波克';s测试在Maven启动后失败,java,maven,spock,Java,Maven,Spock,独立运行(在IDE中)时测试成功,但通过Maven触发时抛出:groovy.lang.MissingPropertyException 我调试了mvn测试,发现gameObject在运行时通过Maven启动时没有定义字段。具体的异常消息是: groovy.lang.MissingPropertyException:没有这样的属性:类的gameObject:org.monterinio.games.asteroids.player.view.PlayerView 测试文件夹:src/Test/gr

独立运行(在IDE中)时测试成功,但通过Maven触发时抛出:
groovy.lang.MissingPropertyException

我调试了
mvn测试
,发现
gameObject
在运行时通过Maven启动时没有定义字段。具体的异常消息是:

groovy.lang.MissingPropertyException:没有这样的属性:类的gameObject:org.monterinio.games.asteroids.player.view.PlayerView

测试文件夹:
src/Test/groovy

包含(除其他外)org.monterinio.games.asteroids.player.controller.action.BasicActionHandlerTest

Src文件夹:
Src/main/java

包括(除其他外):


我希望Maven执行测试时会成功。

打开正在测试的软件包解决了问题:

package.info

...
// needs to be opened for testing
opens org.monterinio.games.asteroids.player.model;
opens org.monterinio.games.asteroids.player.model.rotation;
...
或者只需打开整个模块:

open module asteroids {
  ...
}

打开正在测试的包解决了问题:

package.info

...
// needs to be opened for testing
opens org.monterinio.games.asteroids.player.model;
opens org.monterinio.games.asteroids.player.model.rotation;
...
或者只需打开整个模块:

open module asteroids {
  ...
}

好?实际上,我在任何地方都看不到任何名为
gameObject
的属性,这甚至假定您忽略了getter和setter。我看到了一个
player
字段,虽然这可能是一个属性的
私有最终
支持字段。哦,说得好。但是,更改为
player
或将其设置为
private final
似乎都没有帮助。IIRC groovy仍然使用一些反射,因此您可能会遇到
--非法访问=拒绝
的问题。请提供一个。缺少类和不完整的POM并没有特别的帮助,是吗?实际上,我在任何地方都看不到任何名为
gameObject
的属性,这甚至假定您忽略了getter和setter。我看到了一个
player
字段,虽然这可能是一个属性的
私有最终
支持字段。哦,说得好。但是,更改为
player
或将其设置为
private final
似乎都没有帮助。IIRC groovy仍然使用一些反射,因此您可能会遇到
--非法访问=拒绝
的问题。请提供一个。缺少类和不完整的POM并没有特别的帮助。