spring boot集成testng

本文介绍了在Spring Boot项目中集成TestNG的原因和优势,并详细阐述了如何通过添加依赖、创建父类以及编写测试用例来实现集成。TestNG相比JUnit提供了更强大的测试组织和执行功能,如测试组、依赖管理和并行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

一、背景

二、testng的优势

 三、在spring boot框架项目中集成testng

1、在pom文件中加入testng依赖

2、生成一个所有cast类的父类

3、实际的case操作类

4、接下来就可以使用testng的xml配置case的执行了!


一、背景

spring boot test很好地集成了junit的测试框架,但是当测试case越来越庞大、组合越来越复杂时,需要集成testng更好的组织测试case集合。

二、testng和junit的主要区别

2.1 testng和junit不同之处

2.1.1 junit的测试类:

package org.maggiezhang.springbootdemo.dao.mapper;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.maggiezhang.springbootdemo.StartApp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;

import javax.annotation.Resource;
import javax.sql.DataSource;

@SpringBootTest(classes = StartApp.class)
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@Slf4j
public class TestDataSource {
    @Resource
    private DataSource dataSource;
    @Autowired
    private CouponMapper couponMapper;

    @Test
    public void testConnection(){

        System.out.println(this.dataSource);
    }

    @Test
    public void testMapper(){
        System.out.println(couponMapper);
        log.trace("trace");
        log.info("info");
        log.warn("warn");
        log.error("error");
        log.debug("debug");

        //couponMapper.queryByLoanBillId(1l);
    }

}

2.1.2 testng的测试类:

package org.maggiezhang.springbootdemo;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
import org.springframework.test.context.web.WebAppConfiguration;
import org.testng.annotations.Test;


@SpringBootTest(classes = StartApp.class)
@WebAppConfiguration
@Slf4j
public class CaseBase extends AbstractTestNGSpringContextTests {

    public CaseBase() {
    }

    @Test
    public void test(){
        //couponMapper.queryByLoanBillId(1l);
        System.out.println("test....");
        logger.info("test from logger...");


    }

}

2.2 testng的优势

  1. 注解
  2. TestNG 使用 Java 和面向对象的功能
  3. 支持综合类测试(例如,默认情况下,不用创建一个新的测试每个测试方法的类的实例)
  4. 独立的编译时测试代码和运行时配置/数据信息
  5. 灵活的运行时配置
  6. 主要介绍“测试组”。当编译测试,只要要求 TestNG 运行所有的“前端”的测试,或“快”,“慢”,“数据库”等
  7. 支持依赖测试方法,并行测试,负载测试,局部故障
  8. 灵活的插件 API
  9. 支持多线程测试

来自 https://www.yiibai.com/testng/

 三、在spring boot框架项目中集成testng

1、在pom文件中加入testng依赖

<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>${testng.version}</version>
</dependency>

2、生成一个所有cast类的父类

package org.maggiezhang.springbootdemo;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
import org.springframework.test.context.web.WebAppConfiguration;


@SpringBootTest(classes = StartApp.class)
@WebAppConfiguration
@Slf4j
public class CaseBase extends AbstractTestNGSpringContextTests {

    public CaseBase() {
    }


}

3、实际的case操作类

package org.maggiezhang.springbootdemo.dao.mapper;

import org.maggiezhang.springbootdemo.CaseBase;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.annotations.Test;


public class TestCouponMapper extends CaseBase {

    @Autowired
    CouponMapper couponMapper;

    @Test
    public void test(){
        //couponMapper.queryByLoanBillId(1l);
        System.out.println("test....");
        System.out.println(couponMapper);
        logger.info("test from logger...");


    }
}

4、接下来就可以使用testng的xml配置case的执行了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值