gpt4 book ai didi

java - 在 arquillian 测试中使用 shrinkWrap 在部署 jar 中添加包

转载 作者:搜寻专家 更新时间:2023-11-01 01:06:03 24 4
gpt4 key购买 nike

我正在使用 arquillian 进行单元测试。我正在使用 shrinkWrap 创建部署 jar。但是为此,我需要添加我的项目中使用的所有包,数量很多。

以下是我的测试文件

@RunWith(Arquillian.class)
public class GreeterTest {



@Deployment
public static JavaArchive createDeployment() throws NamingException {

return ShrinkWrap.create(JavaArchive.class, "test.jar")
.addPackage(ABC.class.getPackage())
.addPackage(EFG.class.getPackage())
.addPackage(HIJ.class.getPackage())
.addPackage(KLM.class.getPackage())
.addPackage(NOP.class.getPackage())
.addPackage(QRS.class.getPackage())
.addPackage(TUV.class.getPackage())
.addPackage(XYZ.class.getPackage())

.addAsResource("test-persistence.xml", "META-INF/persistence.xml")
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");

}

@Inject
ABC abc;

@Inject
EFG efg;

@Inject
HIJ hij;

@Inject
KLM klm;

@Inject
NOP nop;

@Test
public void shouldBeAbleToInjectEJBAndInvoke() throws Exception {

abc.getDetail();

}
}

可以看到.addPackage()。我的项目中有数百个包。明显的代码量会大幅度增加

还有其他办法吗?或者我一定是犯了什么大错

最佳答案

我建议您使用包路径的字符串表示:“com.root.core”等。还有一些方法:

addPackage(String pack)

addPackages(boolean recursive, String... packages)

我想最新的更适合你,因为它为你提供了递归添加包的可能性,从而避免重复包含每个包。例如:

.addPackages(true, "com.root")

关于java - 在 arquillian 测试中使用 shrinkWrap 在部署 jar 中添加包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31919193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com