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可在并行和非并行模式下工作。

相关文章
|
3月前
|
Java 数据库连接 mybatis
解决Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: No constructor found
解决Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: No constructor found
199 1
|
10月前
|
SQL Java Spring
【MybatisPlus异常】The SQL execution time is too large, please optimize
【MybatisPlus异常】The SQL execution time is too large, please optimize
251 0
【MybatisPlus异常】The SQL execution time is too large, please optimize
|
3月前
|
Java Maven
CoreException: Could not get the value for parameter compilerId for plugin execution default-compile
CoreException: Could not get the value for parameter compilerId for plugin execution default-compile
25 0
|
10月前
flowable项目报错:java.sql.SQLSyntaxErrorException: Table ‘psr_flowable_test.act_ge_property’ doesn’t exi
flowable项目报错:java.sql.SQLSyntaxErrorException: Table ‘psr_flowable_test.act_ge_property’ doesn’t exi
120 0
|
10月前
|
XML Java 数据库连接
MyBatis参数映射问题解决教程: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 wit
MyBatis参数映射问题解决教程: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 wit
748 1
|
10月前
|
XML Java 数据库连接
【异常解决】解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题
【异常解决】解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题
132 0
|
XML SQL Java
mybatis-plus异常记录:org.apache.ibatis.binding.BindingException Invalid bound statement
mybatis-plus异常记录:org.apache.ibatis.binding.BindingException Invalid bound statement
1461 0
mybatis-plus异常记录:org.apache.ibatis.binding.BindingException Invalid bound statement
|
XML Java 数据库连接
springboot整合mybatis中:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
在项目的启动过程中如果出现:以下报错信息,则可以从以下几个方面入手排查问题。 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 一般的原因是Mapper interface和xml文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上,需要比较细致的对比,这是第二次出现这种异常。我每次都是按照如下方法去逐一排查的,到最后都能解决问题。
710 0
|
SQL Java 数据库连接
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration.
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration.
439 0
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration.
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