java - 如何解决 arquillian 静态变量 = null
问题描述
自从我升级到 WildFly 23 以来,我一直无法使用 shrinkwrap/arquillian 来正确解析类。
这是 createDeployment 函数
public static Archive<?> createBasicShrinkWrappedDeployment()
{
File[] mavenImports = Maven.resolver()
.loadPomFromFile("pom.xml")
.importRuntimeDependencies()
.resolve()
.withTransitivity()
.asFile();
return ShrinkWrap.create(WebArchive.class, "<project>-tests.war")
.addAsLibraries(mavenImports)
.addPackages(true, "org.<company>.crs")
.addAsResource("jbossas-managed/test-persistence.xml", "META-INF/persistence.xml")
.addAsResource("jbossas-managed/test-orm.xml", "META-INF/orm.xml")
.addAsResource("templates/email/template1.vm")
.addAsResource("templates/email/template2.vm")
.addAsResource("templates/email/template3.vm")
.addAsResource("templates/email/template4.vm")
.addAsResource("templates/pdf/template5.vm")
.addAsWebInfResource("beans.xml", "beans.xml");
}
我的问题是,对于测试,我们有一些测试数据存在于:org.<company>.crs.utils,它是我们用于功能测试的一堆静态数据,用于将预期的数据库数据与静态数据进行比较应用程序。这是一个例子:
package org.<company>.crs.utils;
public class UserInfo{
public static class Id
{
public static UUID Steve = UUID.fromString("...");
public static UUID TestPerson = UUID.fromString("...");
public static UUID Anonymous = UUID.fromString("...");
}
... <more test classes like Id>
}
现在,当我们运行测试时,我们可能会运行以下内容:
Assert.assertEquals(permission.getIdentityId(), UserInfo.Id.Steve);
但是,UserInfo.Id.Steve 为空,我假设这是一个收缩包装或 arquillian 问题,因为该数据是静态定义的并且不能为空。
这一直有效,直到我们将应用程序服务器从 WF8 更新到 WF23(并在此过程中进行了许多其他更改)。想知道是否有人知道这是什么原因造成的,或者如何解决?
解决方案
故障排除过程的进一步发展得出结论,这是(我认为)我的 IDE 而不是测试框架的问题。有关 IDE 问题的新问题的链接,请参阅上述评论。
推荐阅读
- python - Python:基于“\”连接列
- jenkins - Jenkins BlueOcean 仅使用单个分支进行构建?
- javascript - 将输入信息从动态表单发送到另一个函数
- javascript - 如何从 Facebook Messenger 对话下载所有照片?JavaScript 香草
- php - MYSQL & PHP - 每个 IN 变量返回 1 个结果,即使变量不是唯一的
- wordpress - 如何在帖子 URL 中使用自定义元字段而不是 CPT 标题?
- python - 你如何连接熊猫中的两个单行?
- java - 尝试从 java servlet 中的多个表访问数据
- node.js - 使用 Node js 进行网络爬取
- c - 具有可变成员长度的结构导致“分段错误 11”