gen-test-plugin

我们日常编写代码的过程中,经常需要为代码编写测试案例。

随着对代码质量的要求越来越高,很多公司开始通过代码的测试覆盖率作为 QA 的一个评定指标。

本框架可以一键生成所有代码对应的 junit 测试案例,为你的人生节约宝贵的时间。

特性

  • 支持生成 junit4/junit5

  • 支持 jdk7

  • 支持自定义生成模板

更新记录

更新记录

gen-test

用于生成 Junit4/Junit5 单元测试。

引入

<plugin>
<groupId>com.github.houbb</groupId>
<artifactId>gen-test-plugin</artifactId>
<version>0.0.1</version>
</plugin>

属性说明

属性 说明 默认值 类型 备注
isOverwriteWhenExists 如果 test 文件已存在,是否覆盖 false 字符串 默认不进行覆盖
encoding 项目编码 utf-8 字符串
includes 包含文件正则 **\/*.java 字符串 默认为所有 java 文件
excludes 排除文件正则 字符串 默认不进行排除
junitVersion junit 版本 4 字符串 默认为 junit4

运行

命令行直接执行

mvn com.github.houbb:gen-test-plugin:0.0.1:gen-test

直接运行【gen-test】插件下 gen-test 即可在项目 test 目录下生成对应的测试类。

效果

比如项目有如下类:

public class HelloTestDemo {

    public static String hello() {
return "hello";
} }

则生成对应测试文件:

package com.github.houbb.gen.maven.plugin.util;

import org.junit.Test;

/**
* HelloTestDemo Tester.
*
* @author houbinbin
* @since Tue Nov 14 16:01:53 CST 2017
* @version 1.0
*/
public class HelloTestDemoTest { /**
*
* Method: hello()
*/
@Test
public void helloTest() throws Exception {
} }

junit5 模板

如果想自定义,可以在 maven 项目 resources 文件夹下创建文件 junitTest5.ftl,在下面的基础上进行修改。

junit4 模板

上述的文件生成根据如下模板(Freemarker 语法) 生成

如果想自定义,可以在 maven 项目 resources 文件夹下创建文件 junitTest4.ftl,在下面的基础上进行修改。

  • entry

待生成的实体类信息。

${entry.packageName} 包名

${entry.className} 类名

entry.methodList 获取所有的 非私有/非main() 方法列表。暂时未提供私有方法列表,后期可加。

  • today

当前日期。后期考虑添加格式化配置。

  • method

方法的属性

${method.signature} 方法的签名

${method.name} 方法名称

${method.comment} 方法注释

${method.sourceCode} 方法体内的代码

package ${entry.packageName};

import org.junit.Test;

/**
* ${entry.className} Tester.
*
* @author houbinbin
* @since ${today}
* @version 1.0
*/
public class ${entry.className}Test { <#if entry.methodList??>
<#list entry.methodList as method>
/**
*
* Method: ${method.signature}
*/
@Test
public void ${method.name}Test() throws Exception {
} </#list>
<#else> </#if> }

拓展阅读

idoc-自动生成代码文档

data-factory-自动根据 class 生成测试对象

源码学习

gen-test-plugin 已经开源,你可以点击链接学习相关源码。

如果有对你帮助,可以给个 star 支持一下作者。

一键自动生成 java junit 测试代码神器 gen-test-plugin 入门介绍的更多相关文章

  1. Android AIDL自动生成Java文件测试

    /******************************************************************************** * Android AIDL自动生成 ...

  2. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-6.Mysql逆向工程效率神器之使用IDE自动生成Java实体类

    笔记 6.Mysql逆向工程效率神器之使用IDE自动生成Java实体类     简介:实战使用IDE根据Mysql自动生成java pojo实体类                  1.IDEA连接数 ...

  3. 分享:根据webservice WSDL地址自动生成java调用代码及JAR包

    分享:根据webservice WSDL地址自动生成java调用代码及JAR包使用步骤:一.安装java 并配置JAVA_HOME 及 path二.安装ANT 并配置ANT_HOME三.解压WsdlT ...

  4. wsdl自动生成Java代码,根据wsdl生成Java代码

    wsdl自动生成Java代码,根据wsdl生成Java代码 >>>>>>>>>>>>>>>>>&g ...

  5. mybatis自动生成java代码

    SSM框架没有DB+Record模式,写起来特别费劲,只能用下面的方法勉强凑合. 上图中,*.jar为下载的,src为新建的空白目录,.xml配置如下. <?xml version=" ...

  6. Mysql逆向工程效率神器之使用IDE自动生成Java实体类

    Mysql逆向工程效率神器之使用IDE自动生成Java实体类 简介:实战使用IDE根据Mysql自动生成java pojo实体类 1.IDEA连接数据库 菜单View→Tool Windows→Dat ...

  7. Java Junit测试框架

    Java    Junit测试框架 1.相关概念 Ø JUnit:是一个开发源代码的Java测试框架,用于编写和运行可重复的测试.它是用于单元测试框架体系xUnit的一个实例(用于java语言).主要 ...

  8. 利用strut2标签自动生成form前端验证代码

    利用strut2标签自动生成form前端验证代码,使用到的技术有1.struts2标签,如<s:form> <s:textfieled>2.struts2读取*Validati ...

  9. mybatis怎样自动生成java类,配置文件?

    其实没有什么东西是可以自动生成的,只不过是别人已经写好了,你调用罢了. 所以想要mybatis自动生成java类,配置文件等,就必须要一些配置和一些jar包.当然这些配置也很简单. 为了有个初步的认识 ...

随机推荐

  1. bzoj1614 架设电话线

    Description Farmer John打算将电话线引到自己的农场,但电信公司并不打算为他提供免费服务.于是,FJ必须为此向电信公司支付一定的费用. FJ的农场周围分布着N(1 <= N ...

  2. Xcode 中的Bundle versions string, short 和 Bundle version 区别

    Bundle version is the internal version number of your app. Short version string is the publically vi ...

  3. 关于redis的问题:RedisException with message read error on connection

    最近碰到在REDIS执行一步get操作的时候报出错误:Uncaught RedisException: read error on connection,感觉不可理解,REDIS连接没有发现问题,但是 ...

  4. ADO.NET sqlHelper类(DBHelper类)

    1.配置文件 <connectionStrings> <add name="constr" connectionString="Data Source= ...

  5. 巨蟒python全栈开发-第11阶段 ansible_project2

    一个NB的网站: https://www.toolfk.com/ CDN:将用户的需求送到最近的节点:内容分发网络 有些是专门做CDN的工具 常用的markdown是需要知道的,短信有字数限制. we ...

  6. HDU 5572 An Easy Physics Problem【计算几何】

    计算几何的题做的真是少之又少. 之前wa以为是精度问题,后来发现是情况没有考虑全... 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5572 题意: ...

  7. HLSL效果框架

    原文:HLSL效果框架 HLSL效果框架能简化许多操作.这里先不写具体的效果框架的程序,在处理多光源光照的时候再整理. 下一章:效果框架-多种光源的多光源 叠加效果 这儿先列出效果框架的一个注意点: ...

  8. SDUT-2130_数据结构实验之数组一:矩阵转置

    数据结构实验之数组一:矩阵转置 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 数组--矩阵的转置 给定一个m*n的矩阵 ...

  9. 规模化落地云原生,阿里云即将重磅亮相 KubeCon China

    2019 年 6 月 24 日至 26 日, 由 Cloud Native Computing Foundation (CNCF) 主办的云原生技术大会 KubeCon + CloudNativeCo ...

  10. 16-1 djanjo介绍

    一 web框架的本质 1用户的浏览器(socket客户端) 和 网站的服务器(socket服务端)之间 2 HTTP协议: 1.1 请求(request) 1.2. 响应(response) 3 we ...