2 回答

TA贡献1793条经验 获得超6个赞
您找到的解决方案效果很好,所以只是为了完整性。
基本上你需要添加beans.xml
这将启用你的选择。EmptyAsset.INSTANCE
将导致空的 beans.xml 在这种情况下不会削减它。
但是,在您的解决方案中,beans.xml
放置在您之下的src/test/webapp/WEB-INF/beans.xml
什么都不做。如果要利用现有beans.xml
文件,可以使用:
addAsManifestResource(File resource, String target)
其中添加File
了名称为target
addAsManifestResource(Package resourcePackage, String resourceName, String target)
它允许您仅指定文件所在的包,然后是它的名称和文件,您希望在部署中使用它的名称

TA贡献1869条经验 获得超4个赞
问题似乎出在.addAsManifestResource论据上。我必须使用StringAssetArquillian 将添加到 beans.xml 的替代方案,而不是空实例。
这是createDeployment()现在的方法:
@Deployment
public static JavaArchive createDeployment() {
return ShrinkWrap.create(JavaArchive.class)
.addClasses(Repository.class, UserService.class, UTRepository.class)
.addAsManifestResource(new StringAsset("<alternatives><class>org.package.name.repositories.UTRepository</class></alternatives>"), "beans.xml");
}
添加回答
举报