自动的自动化:EvoSuite 自动生成JUnit的测试用例

EvoSuite简介

EvoSuite是由Sheffield等大学联合开发的一种开源工具,用于自动生成测试用例集,生成的测试用例均符合Junit的标准,可直接在Junit中运行。得到了Google和Yourkit的支持。

intelliJ IDEA插件

打开IDE,进入setting(mac版本是Preferences),选择plugins,点击Browse repositories,搜索EvoSuite Plugin,然后选择Install plugin。

Maven 插件引入

当前支持Maven3.1以上版本。 Maven工程可以通过引入EvoSuite的Maven插件来生成新的测试用例。使用Maven插件有如下好处:

  • 1、可以和Jenkins结合,方便快速的运行EvoSuite
  • 2、测试用例生成在pom.xml文件约定好的工程目录下
  • 3、通过Maven的依赖引入EvoSuite,无需单独下载独立的jar文件。

插件的引入如下:

  1. <pluginManagement>
  2. <plugins>
  3.   <plugin>
  4.      <groupId>org.evosuite.plugins</groupId>
  5.      <artifactId>evosuite-maven-plugin</artifactId>
  6.      <version>${evosuiteVersion}</version>
  7.      <executions><execution>
  8.         <goals> <goal> prepare </goal> </goals>
  9.         <phase> process-test-classes </phase>
  10.      </execution></executions>
  11.  </plugin>
  12. </plugins>
  13. </pluginManagement>

引入依赖:

  1. <dependency>
  2.  <groupId>org.evosuite</groupId>
  3.  <artifactId>evosuite-standalone-runtime</artifactId>
  4.  <version>${evosuiteVersion}</version>
  5.  <scope>test</scope>
  6. </dependency>

设定版本的变量(最新版可以在http://www.evosuite.org/downloads/查询):

  1. <properties>
  2.   <evosuiteVersion>1.0.6</evosuiteVersion>
  3. </properties>

由于EvoSuite是生成的JUnit的文件,因此需要引入Junit的依赖。

  1. <dependency>
  2.  <groupId>junit</groupId>
  3.  <artifactId>junit</artifactId>
  4.  <version>4.12</version>
  5.  <scope>test</scope>
  6. </dependency>

EvoSuite的使用

EvoSuite的插件将会对对应的子模块的所有的类进行测试用例生成分析,再分析前需要保证对应代码是build过的。通过插件选取或者mvn compile evosuite:generate 开始分析。

默认情况下会在模块目录下生成.evosuite目录,目录里面是测试用例,如果想要修改那么可以通过如下插件进行配置

  1. <plugin>
  2.    <groupId>org.codehaus.mojo</groupId>
  3.    <artifactId>build-helper-maven-plugin</artifactId>
  4.    <version>1.8</version>
  5.   <executions>
  6.     <execution>
  7.       <id>add-test-source</id>
  8.       <phase>generate-test-sources</phase>
  9.       <goals>
  10.         <goal>add-test-source</goal>
  11.       </goals>
  12.       <configuration>
  13.          <sources>
  14.            <source>${customFolder}</source>
  15.          </sources>
  16.       </configuration>
  17.    </execution>
  18.  </executions>
  19. </plugin>

特别提醒:如果上面的变量${customFolder}是.evosuite/evosuite-tests,那么不需要再次执行evosuite:export

详情参见官方文档:http://www.evosuite.org/documentation/

关注测者,关注测试

原文地址:https://www.cnblogs.com/mrtester/p/10118293.html

时间: 2025-01-01 21:19:23

自动的自动化:EvoSuite 自动生成JUnit的测试用例的相关文章

IDEA 自动生成Junit进行单元测试

1,从插件资源库中搜索JunitGenerator V2.0版本,通过此工具自动完成test类的生成.Settings > Plugins 2,配置生成test类的路径.Settings > Other Settings 修改Output Path: ${SOURCEPATH}/../../../test/${PACKAGE}/${FILENAME}[系统默认${SOURCEPATH}/test/${PACKAGE}/${FILENAME}生成的是包名同一层生成一个test文件夹,${SOUR

PHP MVC自动RBAC访问路由自动生成

使用关键点: ReflectionClass class Rbac extends MY_Controller { public function index() { $arr = glob( __DIR__ .DIRECTORY_SEPARATOR. '*.php'); // $arr = glob(dirname(__DIR__) . DIRECTORY_SEPARATOR . '*'); $MVC = array(); foreach ($arr as $path) { $basename

Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)

标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力活:对于自动化测试与人工测试优缺势的问题,这里不想深入讨论,开一个博客收集一些观点然后开个讨论组讨论效果可能会更好. 标题上列的,是自己对web自动化这块统一的一个想象或是一套完整的自动化应所包含的的部分,目前完成了excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试

自动拆箱和自动装箱

一开始想学学自动拆箱和自动装箱是被这个名字吸引到,听上去好像很高端的样子,其实自动拆箱.自动装箱是很简单的内容. 自动拆箱和自动装箱 Java为每种基本数据类型都提供了对应的包装器类型.举个例子: 1 public class TestMain 2 { 3 public static void main(String[] args) 4 { 5 Integer i = 10; 6 } 7 } 这个过程中会自动根据数值创建对应的Integer对象,这就是自动装箱.再看另外一段代码: 1 publi

自动控制系统|自动控制系统及全面应用|自动控制系统的组成|自动控制系统公司推荐

自动控制系统|自动控制系统及全面应用|自动控制系统的组成|自动控制系统公司推荐 自动控制系统 装车系统 装车控制仪 SCADA系统 TAS系统 装车控制系统 定量装车控制系统 SIS系统 流量计 鹤管流体装卸臂什么叫自动控制系统? 自动控制系统(automatic control systems)是在无人直接参与下可使生产过程或其他过程按期望规律或预定程序进行的控制系统.自动控制系统是实现自动化的主要手段.简称自控系统.自动控制系统及全面应用 自动控制系统已被广泛应用于人类社会的各个领域. 在工

DB2中如何将非自动存储转换成自动存储空间管理方式

DB2 10引入根据温度管理数据存储的表空间更管理方式,但是需要数据库启用自动存储管理,具体在存储路径在某个目录下即可,要讲非自动存储的表空间转换成自动存储的管理方式需要两个步骤,尤其是从低版本升级过来的数据库. ALTER DATABASE EMPLOYEE ADD STORAGE ON '/data' 这样即可,但是对于原来使用DMS或SMS方式管理的表空间需要做重定向恢复,其实就是先做全备份,然后指定redirect restore即可,在原来的实例下恢复: RESTORE DATABAS

ThinkPHP 自动创建数据、自动验证、自动完成详细例子介绍(十九)

原文:ThinkPHP 自动创建数据.自动验证.自动完成详细例子介绍(十九) 1:自动创建数据 //$name=$_POST['name']; //$password=$_POST['password'];  ---这个注册页面传过来的POST值 下面用了自动穿件create方法就可以不用这个,会行动绑定 $user =M('User'); $User->create();   //会将传过来的$_POST数据对应到数据库的字段 $user->add();   //就可以直接写入 2:自动验证

团队项目推荐:自动化卡通人脸生成——by Feng Nie

来到亚研院的实习已经接近两个月,我们终于在8月底开始了培养我们工程知识和能力的ASE课程,而软件工程的核心是运用学习的思维不断巩固实战能力,因此团队项目是一次极好的提升机会.而作为一个团队项目,我觉得需要考虑到项目的可行性,完整性以及最大化的满足用户的需求.毫无疑问,近期的脸萌,美图的热潮,说明图像类的软件已经越来越流行,基于这点,我推荐“自动化卡通人脸生成”作为我们的题目. 如今,用户追求一些具有趣味性和个人结合的应用,并且已经有趋势偏向图片处理和视频类软件.随着社交网络的出现,越来越多的头像

爬虫学习---基础操作--抽屉新热榜自动点赞与豆瓣自动统一短评

爬虫的学习相对来说,比较烦锁,因为网站的反爬规则,经过两天的研究,终于搞定了抽屉新热榜自动点赞与豆瓣自动统一短评(豆瓣登录的验证码目前需要手动输入) 抽屉网的规则问题 示例如下: 1 import requests,re 2 from bs4 import BeautifulSoup 3 headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0' 4