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