问题标签 [shrinkwrap]

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 投票
1 回答
1400 浏览

java - 来自 pom.xml 的 Maven 解析器,Shrinkwrap

在测试中,当我设置 pom.xml 的完整路径时,一切正常:

在很多例子中,只使用了 pom.xml,所以我尝试了:

但在这种情况下,我得到了例外:

如果我尝试传递“”../pom.xml”,结果相同。我必须将所有依赖项包含pom.xml到战争档案中,这是在 arquillian 测试期间部署的,有解决方法吗?理想情况下,我想重用pom.xml 用于构建项目。我不想在“src/test/resources”文件夹中有单独的 pom.xml 文件。

编辑:我有@baba 的主要思想,但是我没有处理 pom.xml,而是basedir通过 maven 资源过滤设置了一个属性:

我已将tests.properties文件添加到test/resources中,在文件中添加了一个属性:

在 pom.xml 我使用了 [ http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html]

在测试中,我已经加载了所有依赖项:

0 投票
1 回答
3088 浏览

wildfly - 如何通过将整个战争部署到 WildFly 嵌入式来设置 arquillian 来测试 maven 战争项目?

我想在嵌入式 WildFly 实例上对我的战争进行宏观(而不是微观!)黑盒测试。

我的 Maven 项目看起来像这样

我的 arquillian 测试需要满足以下要求:

  • 在测试中将整个战争部署到应用服务器。这包括所有生产类、所有运行时依赖项和所有src/main/webapp文件。从维护的角度来看,做微部署是不可能的,因为类依赖和 jar 依赖变化非常频繁。因此,我们无法枚举 ShrinkWrap 部署中的任何内容。
  • 不要在 test 或 arquillian.xml中对 maven 已知的pom.xml任何内容进行硬编码。这包括版本字符串、依赖列表、包或类列表、应用服务器安装目录等。
  • 不要使用超过 1 个 maven 模块。我测试我的战争的测试属于产生战争的同一个 Maven 模块的测试文件夹中。
  • 签出我的代码的用户需要能够简单地运行测试:
    • 只需使用 IntelliJ 打开后,测试需要从 IntelliJ 运行pom.xml
    • 使用 WildFly 嵌入式容器,所以不需要先安装任何东西,不需要先运行任何进程,也绝对不需要JBOSS_HOME先设置环境变量
  • 我只对黑盒测试感兴趣,所以我所有的测试都可以作为客户端运行

理论上,这一切都可以通过 Arquillian 的 Maven 解析器、嵌入式容器、@RunAsClientmaven 故障安全插件、一些arquillian.xml魔术和许多 maven 魔术来实现。但在实践中,我无法让这些东西一起工作,也找不到任何能体面地涵盖这种情况的文档,所以我希望有人能清楚地展示他们如何一起工作。

0 投票
3 回答
1036 浏览

java - 无法在 Arquillian 测试中打开资源文件

我想在我的集成测试中使用 arquillian 读取一个测试 CSV 文件 (xxx.csv)。我正在按如下方式打包我的档案:

印刷品向我展示的地方:

如您所见,该文件显然在存档中(最后一行)。

现在我正在尝试打开它。我努力了:





但没有一个会起作用。

0 投票
1 回答
745 浏览

jakarta-ee - Arquillian 不能 @Inject Stateless bean

我有一个 Arquillian 1.1.8 的集成测试,我使用 Wildfly 8.2.1 作为容器。这是测试:

运行时,我得到这个异常:

我有一个类似的测试,包括一个有效的注射,所以这不是一般问题。

编辑:这里是 CSVFileWriter 的导入:

0 投票
0 回答
320 浏览

maven - Arquillian ShrinkWrap Web Archive 在不同环境中创建的方式不同

我正在使用 ShrinkWrap 创建一个战争文件,当通过 eclipse 和 m2eclipse (maven) 运行测试时,它在我的开发环境中正常工作。

当我在 Jenkins 上运行它时,战争部署是不同的,因此测试失败。例如,我在战争中添加自定义 MANIFEST.MF 作为清单资源,该资源在 Jenkins 环境中创建的战争中为空。

有任何想法吗?

编辑:我尝试了许多不同的方法来添加 MANIFEST.MF,原始代码是:

但我也试过:

并且还尝试先删除 MANIFEST.MF(如果它是由 ShrinkWrap 添加的),然后将其添加到存档中,即:

顺便说一句,以上所有在我的本地环境中都可以正常工作

更新:

我注意到两次战争之间的唯一区别是依赖 arquillian-jacoco。我忘记了在 Jenkins 中我使用配置文件运行测试,该配置文件使用 jacoco 运行覆盖。

因此,当我删除测试通过的依赖项(而不是配置文件)时,就会正确创建 MANIFEST.MF。

我想这意味着 jacoco 扩展以某种方式弄乱了 MANIFEST.MF?

0 投票
1 回答
508 浏览

jboss - JBoss 收缩包装。从其他模块添加文件。

多模块项目。

在此处输入图像描述

在我的 ejb 模块中,我有突出显示的文件。我想使用相同的文件在 web 模块中运行 arquillian 测试。

在 web 模块的 pom.xml 文件中,我依赖于 ejb 模块,但是提供了范围,因为我不希望从 ejb 模块中获取“真实的”persistence.xml。

所以在 RestTest 类中,我想包含来自 ejb 模块的文件..

这样做的最佳方法是什么。?? 谢谢

0 投票
1 回答
1152 浏览

java - 如何使用 ShrinkWrap for Arquillian 将 Gradle testCompile 依赖项添加到 WebArchive?

我对我的文件有以下依赖项,我gradle.build不想将其放在我的最终war文件中,但我需要它才能Arquillian在测试阶段运行测试:

如果我使用的是 Maven,我可以编写如下内容:

但是,由于我使用的是 Gradle 解析器,我相信我不能这样做:

有没有办法在 Gradle 上做到这一点?如果我不添加上述依赖项,我的测试会NoClassDefFoundError在 Selenium 类上失败。但是,如果我将 Selenium 依赖项更改为compile而不是testCompile,它可以工作,但是我的 war 文件大小从 3 兆字节跳到 20 兆字节,并充满了测试类。

提前致谢。

0 投票
0 回答
365 浏览

java - 从 EAR 创建部署存档

我有一个多模块 Maven 项目EAR和一个集成测试项目。现在我想让我的测试针对一些类似于 EAR 的档案运行。

自然,我的第一个直截了当的方法是这样的:

我发现我自己的想法有多糟糕(例如,我每次开始测试时都需要构建 EAR,代码中的版本号也不能很好)。

所以经过数周的工作,我终于想出了这样的事情:

...开始时似乎根本没有结束。整个日志充满

如果他在多个存储库中搜索我们公司的工件,他将永远不会返回结果,这并不奇怪。

沿着这条线的某个地方,我想也许它会帮助一个一个地添加工件

但这会导致相同的错误消息(尽管不太常见),这样我就需要再次定义版本,这并不是我真正想要的。

我发现了一个错误(这是愚人节的玩笑,它必须如此),但这并不能帮助我找到我应该做些什么不同的事情来让它工作。

那么如果我已经有一个 Maven EAR 项目,那么在 Arquillian 中组装 EAR 的正确方法是什么?

0 投票
2 回答
803 浏览

java - 在 arquillian 中设置数据源

所以,我有一个在 main 中使用 persistence.xml 的项目,它位于 src/main/resources/META-INF

现在我想在编写自动化单元测试时使用内存数据库(H2)所以我需要另一个persistence.xml,我在src/test/resouce/META-INF中有它

所以我的问题是我怎样才能超越第一个持久性,

我还使用 shrikwrap 解析器来解析 pom.xml 中的所有依赖项,所以它解决了所有问题,我将它添加到 shrikwrap 以返回 WebArchive,有什么办法吗,我尝试了很多方法,例如创建配置文件或 maven 文件过滤,但不适用于 Arquillian当我解决所有问题并添加到部署中时。

你可以在下面找到我的 Arquillian 部署:

0 投票
2 回答
350 浏览

wildfly - Excpetionmapper 不适用于 Wildfly Swarm,但可以在 Wildfly Server 中使用

我正在尝试在 WildFly Swarm 中运行一个简单的实体 - 控制器 - 边界应用程序。这很好用,但是当我添加一个ExceptionMapper来捕捉它时,NotFoundException它确实在 WildFly 服务器 10 上工作,但在 WildFly 群中却不行。这是 Shrinkwrap 中的错误吗?这是 Wildfly Swarm 中的错误吗?或者我在 Shrinkwrapping 部署中做错了什么?

下面是 Swarm Main 类的具体代码:

这是我的群演示pom.xml

为了比较,这是我pom.xml的 Wildfly 服务器应用程序:

为了完整起见,这里是 ExceptionMapper 的代码:

境界:

控制器:

和实体: