[英]In my testNG integration tests can I use @factory more than once (using Jenkins and Maven for my builds)?
什么-详细步骤
我的测试调用了第三方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
触发构建后,
@Factory 1 creates tests --> @Factory 2 creates more tests --> tests by @Factory 1 are executed --> tests by @Factory 2 are executed
这解决了我运行一批测试(第一批)然后基于第一批测试的结果运行第二批测试的要求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.