gpt4 book ai didi

java - 在测试用例期间部署工件 - JBoss AS

转载 作者:行者123 更新时间:2023-11-29 06:06:41 24 4
gpt4 key购买 nike

我有一个非常具体的测试用例:

  1. 我必须部署 JAR
  2. 做一些测试
  3. 部署另一个 JAR
  4. 再做一些测试

JAR 必须按此特定顺序部署(我不能在调用测试方法之前部署两者)

您知道在某些类似 JUnit 的环境中执行此类场景的方法吗?我知道 1. 绝对可以在 Arquillian 中完成,但我不知道是否有可能在测试方法中执行另一个部署。

最佳答案

您可以在 Arquillian 中使用您的 TestMethod 中的 Deployer api 执行此操作。

首先你必须定义你的 @Deployment 不被 Arquillian 管理:

@Deployment(name = "X", managed = false)
public static WebArchive manualDeployment() {
return ShrinkWrap.create(WebArchive.class)....
}

下一步是注入(inject) Deployer:

@ArquillianResource
private Deployer deployer;

然后在您的@Test 方法中您可以调用:

@Test
public void shouldBeAbleToDeploy() {
deployer.deploy("X")
}

如果您的部署 X 设置为容器内测试(@Deployment.testable=true(默认行为)),您可以在刚刚部署的部署中执行下一个 @Test 方法。

@Test
public void shouldBeAbleToDeploy() {
deployer.deploy("X");
}

@Test @OperateOnDeployment("X")
public void shouldNowBeInDeploymentX() {
// we're now inside X
}

默认情况下,JUnit TestMethods 以随机顺序执行,但 Arquillian JUnit 集成提供了一个 @InSequence(n) 注释,您可以使用它来强制执行顺序。

@Test @InSequence(1)
public void shouldBeAbleToDeploy() {
deployer.deploy("X");
}

@Test @InSequence(2) @OperateOnDeployment("X")
public void shouldNowBeInDeploymentX() {
// we're now inside X
}

关于java - 在测试用例期间部署工件 - JBoss AS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8309842/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com