TestNG学习-ignore和parallelism

简介: TestNG学习-ignore和parallelism

今天来学习下testng的一些辅助设置项。

1. Ignoring

   TestNG可以忽略所有@Test方法:

在一个类中
在特定的包中
在一个包和其子包中

     使用方式:@Ignore

   在方法级别使用时,@ Ignore在功能上等效于@Test(enabled = false)。示例如下:

import org.testng.annotations.Ignore;
import org.testng.annotations.Test;
@Ignore
public class TestcaseSample {
    @Test
    public void testMethod1() {
    }
    @Test
    public void testMethod2() {
    }
}

@Ignore的优先级高于单个@Test方法的注解。将@Ignore放在一个类上时,该类中的所有测试方法都将被禁用。

要忽略特定程序包中的所有测试,只需创建package-info.java并向其添加@Ignore注解:

@Ignore
package com.testng.master;
import org.testng.annotations.Ignore;

这样便会在包com.testng.master及其所有子包中忽略所有@Test方法。


2. 并行的设置

   可以设置TestNG以各种方式在单独的线程中运行测试。

2.1 并行运行组件

       如果正在运行多个组件文件(例如“ java org.testng.TestNG testng1.xml testng2.xml”),并且希望每个组件在单独的线程中运行,则此功能很有用。可以使用以下命令行标志来指定线程池的大小:

java org.testng.TestNG -suitethreadpoolsize 3 testng1.xml testng2.xml testng3.xml

2.2 并行的测试,类和方法

       标记上的并行(parallel)属性可以采用以下值之一:

<suite name="My suite" parallel="methods" thread-count="5">
<suite name="My suite" parallel="tests" thread-count="5">
<suite name="My suite" parallel="classes" thread-count="5">
<suite name="My suite" parallel="instances" thread-count="5">
  • parallel =“ methods”:TestNG将在单独的线程中运行所有测试方法。依赖方法也将在单独的线程中运行,但是它们将遵循自定义指定的顺序。
  • parallel =“ tests”:TestNG将在同一线程中的同一标记中运行所有方法,但是每个标记将位于单独的线程中。可以将所有不是线程安全的类归入同一中,并确保它们都将在同一线程中运行,同时利用TestNG使用尽可能多的线程来运行测试。
  • parallel =“ classes”:TestNG将在同一线程中运行同一类中的所有方法,但是每个类将在单独的线程中运行。
  • parallel =“ instances”:TestNG将在同一线程中的同一实例中运行所有方法,但是在两个不同实例中的两个方法将在不同线程中运行。
  • 属性thread-count允许指定应为此执行分配多少个线程。


    还可以指定@Test方法从不同的线程调用。使用属性threadPoolSize来实现:

@Test(threadPoolSize = 3, invocationCount = 10,  timeOut = 10000)
public void testServer() {

在这个示例中,将从三个不同的线程调用函数testServer十次。此外,十秒的超时保证没有任何线程将永远在该线程上阻塞。

   注:@Test的属性timeOut可在并行和非并行模式下工作。

相关文章
|
4月前
|
Java
flyway报错Correct the classpath of your application so that it contains compatible versions of the
flyway报错Correct the classpath of your application so that it contains compatible versions of the
97 1
|
存储 测试技术 Go
译 | Prefer table driven tests(二)
译 | Prefer table driven tests(二)
96 0
|
缓存 测试技术 Go
译 | Prefer table driven tests(三)
译 | Prefer table driven tests(三)
89 0
|
分布式计算 Java Spark
Optimizing Spark job parameters
Optimizing Spark job parameters
267 0
Caused by: org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping
Caused by: org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping
Caused by: org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping
|
分布式计算 Spark
Spark - ReturnStatementInClosureException: Return statements aren‘t allowed in Spark closures
Spark 使用 RDD 调用 Filter 函数时,dirver 端卡住,报错 ReturnStatementInClosureException: Return statements aren't allowed in Spark closures,即闭包内无法使用 return 函数。
352 0
Spark - ReturnStatementInClosureException: Return statements aren‘t allowed in Spark closures
从零学习SpringCloud系列(二):Schema specific part is opaque
从零学习SpringCloud系列(二):Schema specific part is opaque
249 0
|
测试技术 Linux 数据库
【pytest官方文档】解读Skipping test functions,跳过测试用例详解
【pytest官方文档】解读Skipping test functions,跳过测试用例详解
|
分布式计算 Spark
SPARK中的wholeStageCodegen全代码生成--GenerateUnsafeProjection.createCode说明
SPARK中的wholeStageCodegen全代码生成--GenerateUnsafeProjection.createCode说明
144 0
|
测试技术 Android开发
Junit - 忽略测试(Ignore Test)
Junit - 忽略测试(Ignore Test)
679 0
Junit - 忽略测试(Ignore Test)