我意识到在运行导致问题的 arquillian 测试用例期间使用了一些未添加到我的 shrinkWrap 存档中的类。
我的应用程序配置中有一个启动功能,其签名如下
public void boot(@Observes StartupEvent startupEvent, ExternalContext externalContext, Application application, ProjectStage deltaspikeProjectStage)
(当 JSF 准备好并启动并运行时发送 startUpEvent)并且这没有添加到我的 ShrinkWrap 中,但是当我运行测试用例时,它们会调用我的引导函数。这个不必要的电话毁了一切。当我评论这个函数时,我的测试用例运行良好。
我在想我的测试用例的可用类应该使用如下命令添加到 ShrinkWrap 存档中
WebArchive webArchive= ShrinkWrap
.create(WebArchive.class, "ROOT.war")
.addClasses(CdiTestBean.class,PersistenceListener.class)
但似乎我错了。我应该怎么做才能使一个类对 shrinkWrap 档案不可用!