JBoss Arquillian是JVM的测试平台,使开发人员能够为Java中间件创建自动化集成,功能和验收测试。
集成测试:无法创建 org.jboss.arquillian.test.impl.EventTestRunnerAdaptor 类的新实例
我想针对数据库创建一个集成测试,然后在 wildfly/arquillian 环境中清理它。但是当我尝试执行测试时,我收到 Could not create new instance of c...
我想为 arquillian 使用随机端口。 所以在 arquillian.xml 中 我愿意: ... ...
如何从 arquillian.xml 中通过限定符选择容器?
我想在我的 arquillian.xml 中有不同的容器配置,并在我的测试中选择它们。但我无法加载除默认容器之外的任何容器。 我想在我的 arquillian.xml 中有不同的容器配置,并在我的测试中选择它们。但我无法加载除默认容器之外的任何容器。 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <arquillian xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://jboss.org/schema/arquillian" xsi:schemaLocation="http://jboss.org/schema/arquillian http://www.jboss.org/schema/arquillian/arquillian_1_0.xsd"> <container qualifier="weld" default="false"> </container> </arquillian> 测试用例: @Deployment(name="depl1") @TargetsContainer("weld") public static JavaArchive createTestArchive() throws UnsupportedEncodingException { return ShrinkWrap .create(JavaArchive.class, "test.jar") .addClasses(SomeOtherCdiService.class) .addAsManifestResource(new ByteArrayAsset(beansXmlContent.getBytes("utf-8")), ArchivePaths.create("beans.xml")); } @Test @OperateOnDeployment("depl1") public void shouldBeAbleToInjectInject() { assertNotNull(someOtherCdiService); } 但是测试没有开始,因为 Arquilian 找不到容器 org.jboss.arquillian.container.test.impl.client.deployment.ValidationException: DeploymentScenario 包含与任何定义的容器不匹配的目标 在注册表中。焊接。可能的原因是: 没有可部署的容器 在类路径上找到或者您已经定义了 @org.jboss.arquillian.container.test.api.Deployment 带有 @org.jboss.arquillian.container.test.api.TargetsContainer 值 与任何找到/配置的容器不匹配(请参阅 arquillian.xml 容器@限定符) 我查看了源代码,发现 Aquilian 只找到了 _DEFAULT_ 容器。 当我从部署者方法中删除 @TargetsContainer("weld") 时,测试有效。所以我觉得一般测试还是可以的。 如果我将容器配置修改为 default="true" (<container qualifier="weld" default="ture">) 那么测试也会工作,所以我认为配置文件已加载。 有人知道出了什么问题吗? 详情 完整的堆栈跟踪: org.jboss.arquillian.container.test.impl.client.deployment.ValidationException: DeploymentScenario contains targets not matching any defined Container in the registry. weld. Possible causes are: No Deployable Container found on Classpath or your have defined a @org.jboss.arquillian.container.test.api.Deployment with a @org.jboss.arquillian.container.test.api.TargetsContainer value that does not match any found/configured Containers (see arquillian.xml container@qualifier) at org.jboss.arquillian.container.test.impl.client.deployment.DeploymentGenerator.validate(DeploymentGenerator.java:102) at org.jboss.arquillian.container.test.impl.client.deployment.DeploymentGenerator.generateDeployment(DeploymentGenerator.java:84) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114) at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67) at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:100) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:75) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114) at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeClass(EventTestRunnerAdaptor.java:80) at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:179) at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:311) at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46) at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:196) at org.junit.runners.ParentRunner.run(ParentRunner.java:300) at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:144) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) POM.XML 依赖项 <dependency> <groupId>javax.enterprise</groupId> <artifactId>cdi-api</artifactId> <version>1.0-SP4</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>jsr250-api</artifactId> <scope>provided</scope> <version>1.0</version> </dependency> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <scope>provided</scope> <version>1.0.0.GA</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>4.0.0.GA</version> <scope>provided</scope> <exclusions> <exclusion> <artifactId>slf4j-api</artifactId> <groupId>org.slf4j</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>javax.faces</groupId> <artifactId>jsf-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency> <!-- ejb --> <dependency> <groupId>javax.ejb</groupId> <artifactId>ejb-api</artifactId> <version>3.0</version> <scope>provided</scope> </dependency> <!-- Test --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> <version>${hamcrest.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-library</artifactId> <version>${hamcrest.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.jboss.arquillian.junit</groupId> <artifactId>arquillian-junit-container</artifactId> <version>1.0.0.CR6</version> <scope>test</scope> </dependency> <dependency> <groupId>org.jboss.arquillian.container</groupId> <artifactId>arquillian-weld-se-embedded-1.1</artifactId> <version>1.0.0.CR3</version> <!-- works with arquillian core 1.0.0.CR6 --> <scope>test</scope> </dependency> <!-- do not use org.jboss.weld.se:weld-se because is contains the CODE of slf4j in an not compatible version so we need the parts of weld-se seperate: weld-se-core, weld-core, org.javassist, slf4j-jdk14 https://issues.jboss.org/browse/WELD-903 --> <dependency> <groupId>org.jboss.weld.se</groupId> <artifactId>weld-se-core</artifactId> <version>1.1.5.Final</version> <scope>test</scope> </dependency> <dependency> <groupId>org.jboss.weld</groupId> <artifactId>weld-core</artifactId> <version>1.1.5.Final</version> <exclusions> <exclusion> <artifactId>slf4j-api</artifactId> <groupId>org.slf4j</groupId> </exclusion> </exclusions> <scope>test</scope> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.14.0-GA</version> <scope>test</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-jdk14</artifactId> <version>1.6.1</version> <scope>test</scope> </dependency> 如果您通过 Surefire 配置将 arquillian.launch 系统属性从 Maven 设置为您想要启动的容器,那么它将起作用。您可以在 https://github.com/seam/solder/blob/develop/testsuite/pom.xml 中查看我们在 Solder 中所做的工作 您可以在此处看到您请求的解决方案: https://docs.jboss.org/author/display/ARQ/Container%20config%20runtime%20selection.html 将您的 Maven 配置文件与 arquillian-launch 属性链接,以从 arquillian.xml 中选择容器
Arquillian:无法设置 GlassFish 嵌入式引导程序
我使用嵌入式 Glassfish (3.1.2) 使用 arquillian (1.1.2 Final) 创建了一个 JPA 测试,并在同一项目中使用 EJBContainer 创建了一个测试。 我可以在 Eclipse (Kepler) 中一一运行测试,只需...
Mockito.mock(...) 不再在 Arquillian 集成测试中工作
我们正在从 Java 8 升级到 21,因为我们使用远程 Wildfly 运行 Arquillian 进行集成测试,但也在这些测试类中进行了一些模拟,以避免执行一些烦人的 c...
java.lang.NoSuchMethodError 在 Eclipse 中运行 TestNG 测试
我收到异常 配置失败:@BeforeSuite arquillianBeforeSuite java.lang.NoSuchMethodError: org.jboss.remoting3.Endpoint.builder()Lorg/jboss/remoting3/EndpointBuilder; 在组织...
我的 pom.xml 中有以下配置 maven-surefire-插件 2.17...
我正在尝试使用 Arquillian 对我的网络应用程序进行集成测试。我对 Arquillian 非常陌生,并且花了相当多的时间来弄清楚如何使用 Arquillian。导师人数...
我想知道是否有一种简单的方法来确定 Java 类递归扩展或实现的类型的完整列表? 例如: Foo 类扩展 Bar 实现 I1, I2 {...}...
如何使用arquillian进行多maven模块的集成测试?
我有多个maven模块。DBLayer(包含所有实体),UserManagement(用户管理服务),WebApp 为了设置测试,我需要了解如何架构所有的东西。我想...
使用 liberty:dev goal 运行 arquillian 测试。
我需要用 liberty:dev 目标实现的热重载来运行 Arquillian IT。当使用配置 "mvn clean liberty:dev "目标时,如何配置Arquillian与open liberty?它看起来像...
当使用Arquillian / Shrinkwrap测试我的测试用例时,如何使用相对项目的路径? IDataSet dataSet = new FlatXmlDataSetBuilder()。build(new File(“ src \\ ZZZZZ.xml”)); insertFromXML(dataSet); ...
我正在使用JUnit 4测试用例,我想使用@AfterClass批注。要使用它,使用它的方法必须是静态的。在这种方法中,我想使用@Injected对象。但是似乎...
使用Arquillian Payara Micro Remote测试JakartaEE应用程序
我正在尝试在Maven中使用Arquillian测试JakartaEE应用程序。由于生产性应用程序应在Payara Micro上运行,因此我为...
OpenLiberty初创公司在测试由反对者Arquillian自由管理的测试时被冻结
示例项目在这里。 Openliberty 20.0.0.1 AdaptOpenJDK 8 Arquillian自由管理的配置文件的配置。
我正在尝试与Arquillian在war软件包中测试Java RESTful API(JAX-RS)。战争中的API调用了位于jar中的EJB方法。为了测试这一点,我创建了一个Arquillian测试,该测试是...
自Wildfly 15起,Arquillian托管测试不再起作用
很长时间以来,我与Wildlfy一起进行Arquillian测试。目前,我从Wildfly 14更新到Wildfly17。但是现在,所有Arquillian测试都失败了。我将其简化为单个POM和arquillian.xml,...
Arquillian Container Payara Managed无法启动域-ClassNotFoundException:DomainResource
我无法使用本地payara服务器正常运行我的Arquillian测试。在没有测试的情况下启动我的应用程序,并在同一台payara服务器上运行完全正常。我正在关注...
Arquillian Container Payara Managed无法启动服务器
我无法使用本地payara服务器正常运行我的Arquillian测试。在没有测试的情况下启动我的应用程序,并在同一台payara服务器上运行完全正常。我正在关注...
的Arquillian集成测试代码覆盖率的问题与Jacoco
我做使用的Arquillian和tomee远程插件集成测试。这是工作好。但我的代码覆盖率不工作。我使用Jacoco插件代码覆盖。获取异常在我的...