- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嘿!
我发现的问题很容易理解,但我找不到解决方案。
首先让我提供这个小片段。
@Deployment
public static Archive<?> createDeployableArchive () {
JavaArchive jar = ShrinkWrap.create(JavaArchive.class, "whoCares.jar");
// enable CDI
jar.addAsManifestResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml");
// Some persistence
jar.addAsManifestResource("test-persistence.xml", "persistence.xml");
// Now the interisting part (simplified):
jar.addClass(RegistrationService.class) // This one should be tested
.addClass(RegistrationException.class) // Will be thrown on error.
.addClass(UserDAO.class) // Used by RegService
.addClass(User.class) // JPA Entity
// ...
// ... This scenario goes without interfaces, inheritance, DTOs, different
// ... types of exceptions for different problem types... That's why the list
// ... is so concise.
// ...
.addClass(RegServiceIntegrationTest.class); // Test class must be included
return jar;
}
每次您想要使用 arquillian 测试某个用例(例如 registerUser)时,您都必须收集注册过程所依赖的所有类,并将它们放在可部署的存档中。
手动执行此操作肯定会花费时间并产生问题和错误!有几个弱点:
收集:想象一个包含许多子服务、异常、接口(interface)、父类(super class)、实用程序等的长流程。您将遍历完整的流程来找到它们。老实说,这是一项重复性的长期工作,会让......眼睛感到痛苦。在我决定开始大喊大叫之前,我不得不这样做几次。
使您的测试保持最新:想象一下您的注册链中包含了一个新的子服务。您将必须更新那些该死的依赖项,如果在一天结束时运行集成测试时出现问题,有时会很有趣地挖掘不完整的异常消息(不完整是因为您只知道在某些时候缺少某些东西,但不知道是什么)确切地)。如果幸运的话,会发生 ClassNotFoundException。一项更改当然很容易影响多个测试:1. 让 UserDao 抛出一些新的奇特的运行时异常。2.浪费你一生的时间。
添加包的问题:添加包是由 Shrinkwrap 提供的,但使用它是一个坏主意。有时,经过漫长的一天后,您会感到懒惰,只是添加完整的包,但您能绝对确定每个类将永远保留在同一个包中吗?另一个问题是术语“微部署”意味着对紧凑性的需求。整个包会带来开销,好吧,我想这是最小的问题。
如何解决这个问题(只是不合格的想法)?
源代码中已经提供了所有必需的信息,这有点平庸。
最好的解决方案是这样的:
@Deployment
public static Archive<?> createDeployableArchive () {
JavaArchive jar = ShrinkWrap.create(JavaArchive.class, "whoCares.jar");
// enable CDI
jar.addAsManifestResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml");
// Some persistence
jar.addAsManifestResource("test-persistence.xml", "persistence.xml");
Class<?>[] involved;
involved = Tool.findInvolvedClasses("RegistrationService.java", "registerUser");
jar.addClasses(involved);
return jar;
}
我认为人们无法使用反射来实现这一目标,因为有必要知道确切的“流程”。
我打赌有一个很酷的工具可能会被用于意想不到的用途。当然可能还有其他方法。有人有想法吗?谢谢!
最佳答案
您可以尝试 Arquillian integration in JBoss Tools 。您将找到一些有关如何使用它的信息,in this GitHub repo ;请参阅自述文件。那里链接的截屏视频可能有用。
要开始使用 JBoss Tools,您可以通过 JBT 更新站点将其安装到现有的 Eclipse Kepler (e4.3) 或更高版本, these instructions .
请注意,目前这被认为是实验性的,因此它不包含在 JBoss Developer Studio(打包 Eclipse 和一些插件的发行版)中,并且仅在社区位(即 JBoss Tools)中可用。如果您在 JBoss Tools JIRA 中提交遇到的任何问题(或任何新功能请求),我们将不胜感激。 (请使用测试工具组件)。
关于java - 查找单个方法调用所依赖的所有类/Arquillian Micro Deployments : How to collect necessary classes autmatically?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19838970/
我在 GlassFish (J2EE_1.4) 上的 NetBeans 中开发企业项目。我的项目中有一些实体 bean、一些 session bean 和消息驱动 bean。我以如下方式使用 serv
什么在速度方面更好...... 我正在尝试确定用户是否已将某个 URL 添加到他们的快捷方式列表中。如果他们添加了 URL,页面上就会有一个链接,用于从快捷方式中删除该页面,否则他们可以将其添加到快捷
我的问题如下: 我打开一个Excel-File,但我不知道我的客户在模板文件中使用了哪些可能的标头变量。它们可以是:#DATE,#TIME,#NAME等。因此,我需要查找这些变量,以及是否已使用过:替
我有一堆以“-e”结尾的文件要删除。 $ find . -name "*-e" exec rm {} \; find: exec: unknown primary or operator 正则表达式是
我有一个简单的问题:是否可以在 TypeScript 中获取联合的一部分的类型? 例如,您可以经常使用如下查找类型: interface Person { name: string; } type
我正在尝试设置 Point Cloud Library启用 CUDA 选项的主干构建。 我相信我已经按照 these instructions 正确安装了 CUDA . 在 PCL 构建的 cmake
我将首先说我所知道的唯一 VBA 是操作录制的宏的反复试验。我是一名注册会计师,试图以艰难的方式学习 VBA(并希望我去学校学习计算机编程!)。 我有带有多个工作表的大型工作簿。 G 列中以黄色突出显
当文件数达到阈值时,我试图删除目录中最旧的文件。 list_of_files = os.listdir('log') if len([name for name in list_of_files
我有一个数组,它有一些重复的值。 我必须计算每个重复项的数量及其索引。 打印如: Index of b: 1 Index of b: 4 Index of c: 2 Index of c: 3 Ind
我已经搜索了我的问题的解决方案,但没有成功。热键 ctrl+F 找到的 eclipse 查找/替换功能不起作用。注意:通过 Eclipse 菜单 Edit>Find Replace(不工作我的意思是
我想检查 div 是否包含类为“error”的子级,但条件是错误类显示不等于无。 (意味着错误类必须可见。 如何更改我的以下代码: $(".related_field").each(function
这个问题已经有答案了: 已关闭13 年前。 Possible Duplicate: Can jQuery provide the tag name? 嗨! 这个问题太基础了,我不好意思问,但我尝试了
我一直听说这是 cygwin 的路径问题。它阻止了 emacs 在我的 cygwin 中工作。当我在 cli(不是 bash/cygwin)上执行 find 时,无论我输入什么,我都会得到同样的错误。
我正在使用此变量来获取一个或多个与我需要的值相匹配的值。 var mail = $("#dat").contents().find("td:contains('" + name + "')" ).si
请原谅这个长问题。我只是不确定解决这个问题的最佳方法是什么。 我有一个电子表格(Google 表格),其中包含用户和地址列表,我需要从中创建邮寄标签。该电子表格是从我们的学生信息系统导出的。这些地址应
我正在 Excel VBA 中创建一个公式,以解析单元格中以逗号分隔的“部分”列表。在另一个工作表中查找具有该零件名称的单元格,然后使用找到的该单元格的地址来获取同一行不同列的零件成本。我为此工作了数
我被要求在网络应用程序上实现一些电子邮件地址验证 - 我确信我们都已经经历过一千次了...但是,这一次我被要求在域上进行 MX 查找查看它是否接受电子邮件。 有人知道这样做有任何潜在的问题吗? mx
我有一个切换按钮,可读取.wave文件,并且字符串更改为暂停,然后..... 我的问题是,当用户播放声音时,按钮字符串更改为暂停,结束声音后,该字符串仍为暂停状态,我想将其更改为播放。但是我不知道如何
对于令人困惑的标题提前表示歉意。我的问题如下,我在大约 600 个文件中有以下文本: $_REQUEST['FOO'] 我想将其替换为以下内容: $this->input->post('FOO') 为
我正在使用 Ansible 的查找功能查找 INI 文件中的值。这是文档中的示例: - debug: msg="User in integration is {{ lookup('ini', 'use
我是一名优秀的程序员,十分优秀!