首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >测试插件-infinitest介绍

测试插件-infinitest介绍

作者头像
Dylan Liu
发布2019-07-01 12:03:02
发布2019-07-01 12:03:02
6030
举报
文章被收录于专栏:dylanliudylanliu

缘起

写多了业务代码,一些遗留系统里处于基本没有单测的状态,因此最近对 TDD 的开发方式很感兴趣,看了不少 TDD 介绍和实践的书。

TDD 对测试的执行次数有很高的要求,但是平常在 idea 里面写代码运行测试所需时间较长,需要先 build 才能启动测试,这就成了我们践行 TDD 的障碍,我们需要一款对测试友好的插件来帮助我们。

infinitest 插件可以让我们免除手动执行测试的尴尬,它检测文件的 class 变动,当文件有变动时,可以自动执行测试,开箱即用。infinitest 也可以使用简单的配置,让我们把 infinitest 和 Junit 相关特性结合起来,更显方便

安装与使用

安装很简单:

Settings -> Plugins -> Browse repositories -> 查找infinitest -> Install -> Restart idea

添加到项目中:

Project Structure(ctrl+shift+alt+s) -> Modules -> 添加infinitest

idea 默认不会自动 compile文件,我们需要开启一下

Settings -> Build, Execution, Deployment -> Compiler -> Build project automatically 打上勾

如果项目中只有简单的测试,这样就可以了,如果我们需要区分不同的测试,我们需要自己添加文件来配置一下。

配置

总的文档目录 infinitest docs

filters

这个配置可以让我们指定需要执行哪些测试,不执行哪些测试,支持 Junit4 的 category 和 Junit5 的 tags

  • 添加配置文件

自己新建一个infinitest.filters, 将文件放在.iml同级目录下即可。

  • 通过 class name,支持正则表达式
代码语言:javascript
复制
# Include tests that end in ITest or TestCase
include .*ITest, .*TestCase

# Exclude Inner Classes
exclude .*\$.*

# Include tests in package com.mycompany.mypackage and sub-packages
include com\.mycompany\.mypackage\..*

# Include tests in package com.mycompany.mypackage and not in sub-packages
include com\.mycompany\.mypackage\.[^.]*
  • 通过 Junit5 的 tags
代码语言:javascript
复制
# Include tests with "Fast" and "Regression" tags
includeGroups Fast, Regression

# Exclude tests with "Slow" tag
excludeGroups Slow
  • 通过 Junit4 的 category
代码语言:javascript
复制
# Include tests in FastTests and RegressionTests categories
includeGroups com.example.FastTests, com.example.RegressionTests

# Exclude SlowTests category
excludeGroups com.example.SlowTests

testNg 框架相关的不做介绍,具体可以参见 infinitest filters

JVM options

新建infinitest.args文件,位置与filters的一样,里面每一行是一个虚拟机参数,这个配置会覆盖 infinitest 的默认配置

最后

大家如果遇到什么问题可以先 Google 一下,如果没有找到答案,可以在 GitHub 上自行提问。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 缘起
  • 安装与使用
  • 配置
    • filters
    • JVM options
  • 最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档