spring boot集成testng

目录

 

一、背景

二、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依赖


    org.testng
    testng
    ${testng.version}

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的执行了!

你可能感兴趣的:(软件工程)