繁体   English   中英

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

[英]In my testNG integration tests can I use @factory more than once (using Jenkins and Maven for my builds)?

什么-详细步骤

  1. 我的测试调用了第三方API,并发送了一个新交易的请求(假设我需要对@Factory生成的5个测试进行此操作)。 这些测试在此处以“待处理”状态结束。

  2. 第三方API需要5分钟来处理数据。 我需要在5分钟后(对于所有未完成的测试)再次调用API,以获取我的请求的交易ID,然后通过/失败测试。

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

怎么样

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

我在我的设置中使用Jenkins和Maven生成内部版本,那就是我希望运行测试的时间。

问题

第3步可行吗?

有一个更好的方法吗?

感谢大家!

阅读额外的注释/改进的问题,听起来确实像是一个集成测试

有一些集成测试库,例如JBehaveSerenityCucumber等,可能会更好地进行设置。

使用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. 我在testng.xml中添加了2个测试。
  2. 并在我的代码中设置了2个工厂。
  3. 触发构建后,

     @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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM