在我的testNG集成测试中,我可以多次使用@factory(使用Jenkins和Maven进行构建)



什么 - 详细步骤

  1. 我的测试调用第三方 API 并发送新事务请求(假设我需要为 @Factory 生成的 5 个测试执行此操作(。这些测试在此以"待处理"状态结束。

  2. 第三方 API 需要 5 分钟来处理数据。我需要在 5 分钟后对 API 进行第二次调用(对于我所有挂起的测试(以获取我的请求的事务 ID,然后通过/失败测试。

  3. 我想在这里启动另一个@Factory以重新生成所有待处理的测试。这些挂起的测试再次调用 API(使用不同的输入(以获取事务 ID 并根据此信息通过/失败测试。

如何

我正在尝试使用@Factory动态生成一堆测试并运行它们。运行这些测试后,我想再次使用 @Factory 生成第二批新测试并运行它们。问题是,我第二次尝试打电话给@Factory时没有成功。

我在我的设置中使用 Jenkins 和 Maven 来生成构建,这就是我希望测试运行的时候。

问题

第 3 步可能吗?

有没有更好的方法可以做到这一点?

谢谢大家!

阅读额外的评论/改进问题,听起来确实像是集成测试

有一些需要集成测试库,如JBehave,Serenity,Cucumber等,它们可能更适合设置它。

使用 TestNG,您可以创建 3 个测试,其中每个下一个测试都取决于前一个测试。请参阅下面的代码示例,来自 testng 依赖性测试

package com.mkyong.testng.examples.dependency;
import org.testng.annotations.Test;
public class App {
    @Test
    public void method1() {
        System.out.println("This is method 1");
    }
    @Test(dependsOnMethods = { "method1" })
    public void method2() {
        System.out.println("This is method 2");
    }
}

这里最简单的依赖关系是 show。有关更复杂的情况,例如组等,请参阅示例代码。用于设置两个测试类,每个类都有自己的@Factory

解决了!对这个问题的回答让我找到了答案 - 谢谢@Verhagen

  1. 我在测试中添加了 2 个测试.xml。
  2. 并在我的代码中设置了 2 个工厂。
  3. 触发生成时,

    @Factory 1 creates tests --> 
    @Factory 2 creates more tests --> 
    tests by @Factory 1 are executed --> 
    tests by @Factory 2 are executed
    

这解决了我运行一批测试(第一批(然后根据第一批结果运行第二批测试的要求。

最新更新