一键自动生成 java junit 测试代码神器 gen-test-plugin 入门介绍
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>
}
拓展阅读
data-factory-自动根据 class 生成测试对象
源码学习
gen-test-plugin 已经开源,你可以点击链接学习相关源码。
如果有对你帮助,可以给个 star 支持一下作者。
一键自动生成 java junit 测试代码神器 gen-test-plugin 入门介绍的更多相关文章
- Android AIDL自动生成Java文件测试
/******************************************************************************** * Android AIDL自动生成 ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-6.Mysql逆向工程效率神器之使用IDE自动生成Java实体类
笔记 6.Mysql逆向工程效率神器之使用IDE自动生成Java实体类 简介:实战使用IDE根据Mysql自动生成java pojo实体类 1.IDEA连接数 ...
- 分享:根据webservice WSDL地址自动生成java调用代码及JAR包
分享:根据webservice WSDL地址自动生成java调用代码及JAR包使用步骤:一.安装java 并配置JAVA_HOME 及 path二.安装ANT 并配置ANT_HOME三.解压WsdlT ...
- wsdl自动生成Java代码,根据wsdl生成Java代码
wsdl自动生成Java代码,根据wsdl生成Java代码 >>>>>>>>>>>>>>>>>&g ...
- mybatis自动生成java代码
SSM框架没有DB+Record模式,写起来特别费劲,只能用下面的方法勉强凑合. 上图中,*.jar为下载的,src为新建的空白目录,.xml配置如下. <?xml version=" ...
- Mysql逆向工程效率神器之使用IDE自动生成Java实体类
Mysql逆向工程效率神器之使用IDE自动生成Java实体类 简介:实战使用IDE根据Mysql自动生成java pojo实体类 1.IDEA连接数据库 菜单View→Tool Windows→Dat ...
- Java Junit测试框架
Java Junit测试框架 1.相关概念 Ø JUnit:是一个开发源代码的Java测试框架,用于编写和运行可重复的测试.它是用于单元测试框架体系xUnit的一个实例(用于java语言).主要 ...
- 利用strut2标签自动生成form前端验证代码
利用strut2标签自动生成form前端验证代码,使用到的技术有1.struts2标签,如<s:form> <s:textfieled>2.struts2读取*Validati ...
- mybatis怎样自动生成java类,配置文件?
其实没有什么东西是可以自动生成的,只不过是别人已经写好了,你调用罢了. 所以想要mybatis自动生成java类,配置文件等,就必须要一些配置和一些jar包.当然这些配置也很简单. 为了有个初步的认识 ...
随机推荐
- Oracle TRIM函数语法介绍
Oracle中trim的完整参数TRIM([ { { LEADING | TRAILING | BOTH } [ trim_character ] | trim_character } F ...
- [转]The Curse of Dimensionality(维数灾难)
原文章地址:维度灾难 - 柳枫的文章 - 知乎 https://zhuanlan.zhihu.com/p/27488363 对于大多数数据,在一维空间或者说是低维空间都是很难完全分割的,但是在高纬空间 ...
- Nacos 发布 1.0.0 GA 版本,可大规模投入到生产环境
经过 3 个 RC 版本的社区体验之后,Nacos 正式发布 1.0.0 GA 版本,在架构.功能和 API 设计上进行了全方位的重构和升级. 1.0.0 版本的发布标志着 Nacos 已经可以大规模 ...
- 看看国外的JavaScript题目
---恢复内容开始--- 题目一 (function(){ return typeof arguments;})(); 答案:“object” arguments是对象,伪数组有两件事要注意这里 ...
- PyTorch入门学习(二):Autogard之自动求梯度
autograd包是PyTorch中神经网络的核心部分,简单学习一下. autograd提供了所有张量操作的自动求微分功能. 它的灵活性体现在可以通过代码的运行来决定反向传播的过程, 这样就使得每一次 ...
- HDFS概念名称节点和数据节点-名称节点
- 十分钟学会 Fiddler
一.Fiddler介绍 Fiddler是一个http抓包改包工具,fiddle英文中有"欺骗.伪造"之意,与wireshark相比它更轻量级,上手简单,因为只能抓http和http ...
- 用winrar和zip命令拷贝目录结构
linux系统下使用zip命令 zip -r source.zip source -x *.php -x *.html # 压缩source目录,排除里面的php和html文件 windows系统下使 ...
- 梯度下降优化算法综述与PyTorch实现源码剖析
现代的机器学习系统均利用大量的数据,利用梯度下降算法或者相关的变体进行训练.传统上,最早出现的优化算法是SGD,之后又陆续出现了AdaGrad.RMSprop.ADAM等变体,那么这些算法之间又有哪些 ...
- Vue打包后放到服务器出现Loading chunk {n} failed 错误
导航栏点击切换时 会出现Loading chunk {n} failed ,刷新之后便不会出现.而且n在最新的build的文件中,n没有存在 偶然一次发现,项目更新迭代开发时上传测试环境后就会出现, ...