ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-07-13 21:10:53  阅读:205  来源: 互联网

标签:java jboss ejb jboss-arquillian


我正在使用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,jboss,ejb,jboss-arquillian
来源: https://codeday.me/bug/20190713/1453647.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有