【发布时间】:2014-09-03 14:56:53
【问题描述】:
我正在做一个项目,我正在尝试使用 Arquillian 进行集成测试。我们的项目正在使用 Spring 4,Hibernate,我们正在尝试将其与 Arquillian 集成。 我无法在此链接https://github.com/arquillian/arquillian-showcase/tree/master/spring 中找到解释使用 Arquillium Spring Extension 的合适示例项目 大多数示例涉及通过创建 JAR 来测试业务逻辑。 在此链接 https://github.com/arquillian/arquillian-extension-spring 我发现了如何使用 Arquillian Spring Extension 测试网络应用程序,但不是示例。
所以这就是我想要做的。 我为该项目生成了 Web 存档,它已在 Wildfly 上成功部署,没有任何问题或错误,我们能够访问我们的网页。
我们为项目添加了 arquillian 配置,最初我们只是计划注入实体管理器并执行 DAO 访问层的测试。但是我们认为我们有完全可部署的 WAR ,所以让我们为整个测试设置 arquillian 而不仅仅是 DAO 层。因此我们决定配置相同的。
现在我不再创建整个 WAR,而是使用现有的,并且在任何配置文件中都没有更改。 (我知道应该相应地更改和使用persistence-ds,但这可以在以后使用maven完成)。所以目前我所有的配置文件(applicationContext、beans.xml、hibernate.xml、web.xml、mappings.xml ...等)都与DEV env中使用的相同。
有人能帮帮我吗,目前在测试用例中你不会看到太多测试逻辑,暂时我只是想注入实体管理器和 DAO 层
我可以尝试的下一个选项是, 不要直接使用war,而是通过添加包和依赖项等使用ShrinkWrap 创建一个......我不知道这是否真的有必要。 其他选项,我可以从视图中分离出逻辑代码并创建一个 JAR,然后使用 @SpringConfiguration ,看看它是否有效。 或者放弃 Spring Extension 并使用普通 CDI 并查看它是否有效,但是当涉及到 Spring MVC 测试时,我可能必须解决这个问题。
【问题讨论】:
-
1.错误,(Maven -X),WebArchive 结构的 sysout - gist.github.com/shrikanthavale/ad4cc4015c53c98b64a2 配置文件 - Web.xml、ApplicationContext.xml、hibernate、xml、beans.xml、faces-config、mvc-dispatcherservlet、mappings.xml gist.github.com/shrikanthavale/273890d1cf844f28adc9
-
我能够通过将 web.xml 从 2.5 修改为 3.0 来解决 ArquillianServletRunner 的问题,部署和服务器日志不是干净的,但仍然没有注入
-
我在日志中看到的是BeanMangaer Not found,再次更新日志。但是 beans.xml 存在于 web-inf 文件夹中。测试用例gist.github.com/shrikanthavale/b72e8c8348354db4d0c3