Java 在arquillian部署之前运行代码

Java 在arquillian部署之前运行代码,java,jakarta-ee,junit,jboss-arquillian,Java,Jakarta Ee,Junit,Jboss Arquillian,我正在使用Arquillian+JUnit为JavaEEservlet编写集成测试。我需要能够在服务器启动之前执行代码 那么,是否可以在@Deployment之前执行代码?我在课前试过,但运气不好 我之所以需要这样做,是因为ssl的信任和密钥库需要在服务器启动之前存在。我正在创建有问题的存储,并在以后将它们保存到文件中 我知道一个可能的解决方法是使用静态信任和密钥库,但我更喜欢在测试开始之前以编程方式创建它们,以便在编写测试时具有充分的灵活性。在测试之前和之后执行代码还有两个其他选项: 规则或

我正在使用Arquillian+JUnit为JavaEEservlet编写集成测试。我需要能够在服务器启动之前执行代码

那么,是否可以在@Deployment之前执行代码?我在课前试过,但运气不好

我之所以需要这样做,是因为ssl的信任和密钥库需要在服务器启动之前存在。我正在创建有问题的存储,并在以后将它们保存到文件中


我知道一个可能的解决方法是使用静态信任和密钥库,但我更喜欢在测试开始之前以编程方式创建它们,以便在编写测试时具有充分的灵活性。

在测试之前和之后执行代码还有两个其他选项:

  • 规则或类规则在前后执行
  • 使用自定义Testrunner(扩展默认的“Arquillian”运行程序)

但是由于静态部署方法不是由规则调用的,所以我假设您必须使用testrunner。

实际上不需要您自己专门化Arquillian JUnit runner。此解决方案仅适用于JUnit4.x,在这种情况下,您将使用它编写测试

Arquillian允许您通过扩展机制钩住它的运行时,这样您就可以在服务器启动之前执行一些自定义逻辑来提供密钥库。我相信这是一个更优雅、更便携的解决方案


请看一看(尤其是
生命周期
将是一个很好的起点)。如果你想这样做,我非常乐意帮助你。您可能希望观察的事件是
beforestup
BeforeStart

尝试我建议的方法是否成功?