问题标签 [jboss-arquillian]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2082 浏览

java - JBoss 收缩包装

在观看有关 JBoss 的 Arquillian 的一些视频教程时,我偶然发现了他们的另一个名为ShrinkWrap的项目(因为 Arquillian 使用它)。

在他们的项目页面上花了一些时间之后,我似乎无法找到一些问题的具体答案,而且这似乎是一个相当新的(不成熟的)项目,背后没有大型开发社区。具体来说:

  • ShrinkWrap 的目的是创建内存中的 JAR、WAR 和 EAR?如果是这样,我为什么要这样做?如果不是,ShrinkWrap 的目的是什么,它解决了什么问题?
  • ShrinkWrap 是否触及文件系统(JAR 实际上是在磁盘上创建的,还是真的 100% 在内存中)?如果不是,那么内存存档的价值是什么?

提前致谢!

0 投票
2 回答
880 浏览

java - Arquillian 和 CDI

我正在阅读写得很好的 Arquillian 参考指南,但是在讨论设置依赖注入的章节中,我找不到您实际指定 bean/绑定的位置。

大多数 Arquillian CDI 代码示例都显示了 Java@Inject注释的使用。所以我只是想知道,我在哪里定义这些 bean/DI 映射/绑定,以及如何配置 Arquillian 来使用它们?

在 Spring DI 中,您指定一个 bean 描述符,例如spring-config.xml. 在 Guice 中,您实现 aModule并定义它的configure(Binder)方法。使用时,这在 Arquillian-land 中是什么样子的javax.inject.Inject提前致谢。

0 投票
1 回答
1501 浏览

java - Arquillian 运行模式

我正试图围绕 Arquillian 进行思考,但我只是没有从根本上理解in-container模式与as-client模式之间的区别。

我的理解是,使用 Arquillian/ShrinkWrap:

  • 您创建一个仅包含您想要集成和测试的组件的存档
  • 您将此内存存档流式传输到实际容器(部署它)
  • 您将存档作为容器内的测试运行
  • 您断言该测试会发生什么

所以,从我的角度来看,一切都“感觉”就像它永远一样in-container,因为测试总是在容器内执行。

请帮助我了解这两种模式之间的区别以及这两种模式适合哪种类型的集成测试。提供具体代码示例(而不是直接来自参考指南的模糊代码示例!)的奖励积分解释了为什么/如何在两种模式下运行测试。提前致谢!

0 投票
2 回答
3125 浏览

java - Arquillian 无人机/石墨烯/硒和 UI/功能测试

在投入大量时间完全学习 JBoss Arquillian 并将其用于我所有的集成和功能测试方面,我半途而废。我 100% 确定我想将它用于我的集成测试框架,但对将它用于 UI/功能测试有点怀疑,并希望有 Arquillian Drone/Graphene/Selenium 经验的人可以担保它的能力:

  • 我是否能够在我的 Java 测试用例中模拟对任何DOM 元素(按钮、div、图像等)的任何类型的最终用户输入(鼠标单击、击键等) ?
  • 我能否在所有主流浏览器(IE、FF、Chrome 和 Safari)和版本中模拟所有这些输入?
  • 我是否能够在所有主要移动设备(用于移动 Web 和 Android、iOS、Windows Phone、Blackberry、Kindle 和 Nook 用于原生)和版本的所有主要移动设备上模拟所有这些输入?

提前致谢!

0 投票
1 回答
3167 浏览

security - 在企业 bean 中使用 getUserPrincipal() 和 isCallerInRole() 方法时如何编写 JUnit 测试?

我的环境是 Jboss AS 7.1.0。我正在使用 JUnit 和 Arquillian 进行单元测试。我的 ejb 中有使用 getUserPrincipal() 和 isCallerInRole() 方法的 SSB。为了对这些 ejb 方法进行单元测试,我必须从单元测试用例模拟登录,然后调用 ejb。

这是我正在尝试测试的 EJB 方法的示例:

如何编写 JUnit 测试用例来测试此方法?我提前感谢您的帮助。

07/19 更新(基于以下 Tair 的解决方案)

我的安全域配置如下:

我将下面 Tair 解决方案中显示的 JBossLoginConfigFactory 更改为使用 org.jboss.security.auth.spi.DatabaseServerLoginModule。

我已将 JBossLoginConfigFactory 更改为对 DatabaseServerLoginModule 使用以下方法。

我正在调用此方法而不是 createUsersRolesLoginModuleConfigEntry()。测试用例中的 loginContext.login() 现在由于以下原因而失败:

不知道我现在应该改变什么!

2012 年 7 月 20 日更新:该问题的完整解决方案如下。如果您的解决方案不需要 DatabaseServerLoginModule,只需参考 Tair 回复中的解决方案即可。

就我而言,我将数据库作为 JaaS 身份验证和摘要身份验证。因此,我必须对上面的示例进行以下代码更改。

  1. 我修改了代码(JBossLoginContextFactory)以支持“org.jboss.security.auth.spi.DatabaseServerLoginModule”,如下所示。我在创建 AppConfigurationEntry[] 时调用此方法而不是 createUsersRolesLoginModuleConfigEntry()。

    私有 AppConfigurationEntry createDatabaseModuleConfigEntry() { Map options = new HashMap(); options.put("dsJndiName", "java:jboss/datasources/MysqlDS"); options.put("principalsQuery", "select Password from Principals where PrincipalID=?"); options.put("rolesQuery", "select Role, RoleGroup from Roles where PrincipalID=?"); return new AppConfigurationEntry("org.jboss.security.auth.spi.DatabaseServerLoginModule", AppConfigurationEntry.LoginModuleControlFlag.REQUIRED, options); }

  2. 当我使用摘要身份验证时,我的密码在数据库中被加密。因此,在从我的测试用例中传递密码时,我正在加密并传递密码,如下所示。LoginContext loginContext = JBossLoginContextFactory.createLoginContext("username", md5Hex("my_username"+":"+PropertyManager.getProp("realm")+":"+"my_password"));

现在登录成功了!!

0 投票
1 回答
544 浏览

java - Win7 上的 Selenium Firefox 问题

我在arquillian-examples arquillian drone tutorialmvn test上运行(使用 Maven 3)。

我在 Win7 上收到以下错误(使用 jdk 1.6.0.26)。

我想:(a)让Firefox正常工作;或 (b) 让它在 IE 中工作。有什么建议么?

0 投票
1 回答
466 浏览

jboss - Arquillian 和 jboss-4.2.3.GA

我在一个 jboss-4.2.3.GA 项目上工作。它是一个旧项目,但我们无法升级到新服务器。

我正在尝试将 Arquillian 用于 JPA ..

我们在 JPA 的 pom 中使用以下条目

我正在尝试配置 Arquillian,但我遇到了一些问题,例如 nosuchmethod found 或者有时没有设置默认容器。

任何人都可以帮我设置我需要设置的容器以及任何依赖项设置吗?

0 投票
0 回答
925 浏览

jboss-arquillian - arquillian-glassfish-embedded-3.1 1.0.0.CR3 配置 JDBC 数据源

我试图使用 arquillian-glassfish-embedded-3.1 容器来测试和 EJB3 应用程序。我试图弄清楚如何设置一个简单的 JDBC 数据源,该数据源可以作为资源注入到无状态 ejb。

这是我所拥有的:

还有 arquillian.xml 包含以下内容:

和一个 domain.xml

简单的测试如下所示:

我收到以下错误:

... 108 更多原因:com.sun.enterprise.container.common.spi.util.InjectionException:尝试注入 Res-Ref-Env-Property 的异常:myDataSource@javax.sql.DataSource@ 解析为:jndi:myDataSource @res 主体:null@mail:null 无运行时属性

... 108 更多原因:com.sun.enterprise.container.common.spi.util.InjectionException:尝试注入 Res-Ref-Env-Property 的异常:myDataSource@javax.sql.DataSource@ 解析为:jndi:myDataSource @res 主体:null@mail:null 无运行时属性

任何帮助表示赞赏。

谢谢

0 投票
1 回答
2139 浏览

java - 如何为 JSF 类编写 Arquillian 测试

我正在尝试对植根于 JSF API 的数据模型执行 arquillian 测试。我收到此错误:

简单的 arquillian 测试,不涉及 JSF,但 JPA 和 EJB API 运行良好。
对网络的研究表明,造成这种情况的一个常见原因是使用了此处此处所述的 sun 的存根 EE API 。

我绝对不会使用它们。这是我的依赖部分pom

我还尝试使用内部 JBoss JSF API 进行测试,但对错误没有影响:

我的模型来源于primefacesLazyDataModel

LazyDataModel反过来又来源于javax.faces.model.DataModel

测试大部分是空的,我要求注入我的模型并检查null

编辑ShrinkWrap 初始化现在包括faces-config.xmlstefanglase 提出的。虽然没有改变错误输出。

我在 Jboss 7.1.0.Final 上运行它。
关于可能是什么问题以及如何解决它的任何想法?

谢谢

0 投票
1 回答
862 浏览

java - Using Arquillian Persistence with Drone/Graphene

Has anyone been able to use Arquillian Persistence extension with Arquillian Graphene/Selenium in the same test? I have a project that is using the Persistence & Drone/Graphene extensions and separately they both work fine. I can configure the database for integration tests with Persistence, and I can do UI Acceptance tests with Drone.

The problem is when I try to use the Persistence extension in a Drone test. For some reason the Persistence extension does not appear to execute as the database is never populated. Is there something special that needs to be done to enable the Persistence Extension to run in client mode with Arquillian?

Test Class

更新 我尝试删除 deployment=false 并使用 @RunAsClient ,但没有成功。我还尝试将 @UsingDataSet 和 @ApplyScriptBefore 注释放在测试本身上,但没有成功。