我使用Deltaspike CdiControl为我的单元测试启动CDI容器。这很好,但是有一个问题:如果我将这种方法用于Maven网络应用,beans.xml
最终会出现在src/main/webapp/WEB-INF
中。这意味着它在单元测试期间不在目标文件夹的META-INF
目录中。
由于单元测试本身不是webapp
而是Java SE运行,因此忽略WEB-INF
目录。我可以通过向beans.xml
添加第二个META-INF
和/或将现有beans.xml
复制到右侧文件夹进行单元测试来解决此问题。但这意味着我必须手动将它排除在战争之外,所以看起来有点像黑客。
将beans.xml
放入src/test/resources/META-INF
不起作用,因为它只允许检测target/test-classes
中的CDI组件。
这似乎是一个常见的问题,我认为有人必须在此之前碰到这个问题?或者每个人都有一个单独的Maven模块用于组件和/或单元测试?