什么 - 详细步骤
-
我的测试调用第三方 API 并发送新事务请求(假设我需要为 @Factory 生成的 5 个测试执行此操作(。这些测试在此以"待处理"状态结束。
-
第三方 API 需要 5 分钟来处理数据。我需要在 5 分钟后对 API 进行第二次调用(对于我所有挂起的测试(以获取我的请求的事务 ID,然后通过/失败测试。
-
我想在这里启动另一个@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
- 我在测试中添加了 2 个测试.xml。
- 并在我的代码中设置了 2 个工厂。
-
触发生成时,
@Factory 1 creates tests --> @Factory 2 creates more tests --> tests by @Factory 1 are executed --> tests by @Factory 2 are executed
这解决了我运行一批测试(第一批(然后根据第一批结果运行第二批测试的要求。