单元测试自动生成工具Evosuite的安装使用

这篇具有很好参考价值的文章主要介绍了单元测试自动生成工具Evosuite的安装使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、安装使用

1.如何在idea中安装并且使用Evosuite

1.1介绍

官网: https://www.evosuite.org/
GitHub: https://github.com/EvoSuite

1.2安装插件

(1)直接安装

进入settigs中,点击plugins,搜索Evosuite,点击安装

idea中的evosuite 使用,单元测试

(2)从官网下载安装

打开网页 https://plugins.jetbrains.com/plugin/18956-evosuite-xenoamess-tpm-/versions ,点击Download按钮下载插件。

idea中的evosuite 使用,单元测试

选择菜单File -> Settings,对话框中选择Plugins项目。单击Installed窗口顶部选项卡右边的齿轮图标。从下拉菜单中选择Install Plugin from Disk…,导航到插件的位置,选择zip文件,点击OK。 

idea中的evosuite 使用,单元测试

导入evosuite的jar包。选择File->Project Structure,对话框左侧选择Libraries,点击添加按钮,选择Java菜单项。在弹出的对话框中选择evosuite的jar包路径后,点击OK。后续步骤依次点击OK完成。

相比还是直接从idea中安装插件更加方便 

1.3配置使用

命令:

mvn compile -DmemoryInMB=2000 -Dcores=2 -Dcuts=alexp.blog.service.PostServiceImpl -DtargetFolder=src/test/java/evosuite evosuite:generate evosuite:export

简单说明下:

  1. compile 表示编译。evosuite 是基于编译后的 .class 文件生成用例的,所以需要先编译。
  2. -DmemoryInMB=2000 表示使用 2000MB 的内存
  3. -Dcores=2 表示用 2 个 cpu 来并行加快生成速度
  4. -Dcuts=alexp.blog.service.PostServiceImpl 表示只针对 alexp.blog.service.PostServiceImpl 这个类生成用例。多个用例可以用英文逗号分隔
  5. -DtargetFolder=src/test/java/evosuite 表示生成的用例放到 src/test/java/evosuite 。
  6. evosuite:generate 表示执行生成用例
  7. evosuite:export 表示导出用例到 targetFolder 的值所在的目录中

但是可以直接在Evosuite中配置,右键要生成单元测试的类文件,右键 Run Evosuite

idea中的evosuite 使用,单元测试

显示如下图配置项

idea中的evosuite 使用,单元测试

Export folder就是生成的测试文件的导出位置,可以自行配置

也可以使用命令和配置文件来配置导出位置

(1)直接修改export 命令

mvn evosuite:export -DtargetFolder=src/test/evosuite

(2)修改pom.xml文件,在<project>节点下下,添加<properties> 配置

<properties>
  <targetFolder>src/test/evosuite</targetFolder>
</properties>

(3)右键在Run Evosuite选项中配置

idea中的evosuite 使用,单元测试

  • 在pom.xml文件中引入Junit依赖项:Maven项目集成EvoSuite时,需要当前项目中已经引入Junit
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.evosuite</groupId>
      <artifactId>evosuite-standalone-runtime</artifactId>
      <version>1.0.6</version>
      <scope>test</scope>
    </dependency>
  •  引入Evosuite
  <build>
    <plugins>
      <plugin>
        <groupId>org.evosuite.plugins</groupId>
        <artifactId>evosuite-maven-plugin</artifactId>
        <version>1.0.6</version>
      </plugin>
    </plugins>
  </build>

 执行命令

mvn evosuite:help

 执行之后显示如下信息则下载成功

[INFO] Maven Plugin for EvoSuite 1.0.6
  Plugin used to run EvoSuite to automatically generate high coverage JUnit
  tests

This plugin has 7 goals:

evosuite:clean
  Remove all local files created by EvoSuite so far

evosuite:coverage
  Execute the manually written test suites (usually located under src/test/java)
  and return the coverage of each class.

evosuite:export
  When run, EvoSuite generate tests in a specific folder. New runs of EvoSuite
  can exploit the tests in such folder, and/or modify them.

  So, with 'export' we can copy all generated tests to a specific folder, which
  by default points to where Maven searches for tests. If another folder is
  rather used (or if we want to run with Maven the tests in the default EvoSuite
  folder), then Maven plugins like build-helper-maven-plugin are needed

evosuite:generate
  Generate JUnit tests

evosuite:help
  Display help information on evosuite-maven-plugin.
  Call mvn evosuite:help -Ddetail=true -Dgoal=<goal-name> to display parameter
  details.

evosuite:info
  Obtain info of generated tests so far

evosuite:prepare
  Mojo needed to prepare the EvoSuite tests for execution. This is needed to
  make sure that bytecode is properly instrumented.

可能出现的问题

 如果你的中央仓库没有EvoSuite的包,可以引入EvoSuite的 Maven仓库来解决依赖问题,修改pom.xml文件,添加如下信息:

<pluginRepositories>
  <pluginRepository>
    <id>EvoSuite</id>
    <name>EvoSuite Repository</name>
    <url>http://www.evosuite.org/m2</url>
  </pluginRepository>
</pluginRepositories>

查看Evosuite各个goal的详细信息

例如,获取更多关于generate goal的详细信息,可以执行下面的命令:

mvn evosuite:help -Ddetail=true -Dgoal=generate

 生成Test,可以执行命令,也可以直接点击Run Evosuite来执行

mvn evosuite:generate

运行Evosuite的Test

mvn test

 生成的测试文件列表

执行完毕后,在 src/test/evosuite 下会增加一个 alexp/blog/service 文件夹,里面存放生成的测试文件:

idea中的evosuite 使用,单元测试

这样子不是很方便执行,建议新建一个test/evosuite文件目录,存放生成的测试文件

idea中的evosuite 使用,单元测试

整合测试文件

mvn evosuite:export

你会发现在test 中有很多编译错误:package org.evosuite.runtime does not exist.。
因为EvoSuite测试依赖于EvoSuite运行时库,因为它们使用字节码执行容器(bytecode instrumentation)和其他各种方法来避免脆弱的测试。
引入运行时库:

 <dependency>
  <groupId>org.evosuite</groupId>
  <artifactId>evosuite-standalone-runtime</artifactId>
  <version>1.0.6</version>
  <scope>test</scope>
</dependency>

引入成功后,再次运行mvn test,就可以执行成功。

如何把EvoSuite Test和程序员写的Test分开

如果想把自己写的Test和产生的Tests分开,先从src/test/java 中删除所有之前export过来的EvoSuite Test

rm src/test/java/*ESTest*.java

通过运行下面的命令,我们可以知道export goal的详细用法:

mvn evosuite:help -Ddetail=true -Dgoal=export

得到如下信息:

  Available parameters:

    targetFolder (Default: src/test/java)

      User property: targetFolder

2.如何在eclipse中安装并且使用Evosuite

EvoSuite 插件需要Java 8 的运行环境,并且只支持Eclipse的Lunar和Mars版本,在安装完毕Java 8之后(若系统中有多种Java开发环境,需将Eclipse的默认jre设置成Java 8 版本),需要将jdk1.8/lib/tools.jar  文件复制到  jre8/lib/ 文件夹当中,在此之后Java 8才能保证EvoSuite插件的正常运行。

安装过程如下(由于安装过程可能会出现问题,所以详细列出了安装过程):

1.1打开Eclipse 依次点击菜单栏的help->Install New Software… 截图如下

idea中的evosuite 使用,单元测试

1.2点击Add…按钮,弹出如下对话框

idea中的evosuite 使用,单元测试

1.3在Location栏中输入EvoSuite Eclipse插件的地址:Index of /update 后,点击OK按钮,结果如下

idea中的evosuite 使用,单元测试

1.4选中 Junit Test Generation 后,点击Next按钮,运行时间可能过长,请耐心等待,运行完毕后,结果如下

idea中的evosuite 使用,单元测试

1.5点击Next按钮,选中 I accept the terms of license agreement后,点击Finish按钮后,显示 Installing Software对话框,等待一段时间后,会弹出如下对话框

idea中的evosuite 使用,单元测试

1.6点击OK按钮,等待一段时间后,出现如下对话框点击OK按钮,等待一段时间后,出现如下对话框

idea中的evosuite 使用,单元测试

 选中需要测试的类,右击鼠标,选择Generate tests with EvoSuite ,则会生成测试用例,测试用例生成在项目中的evosuite-tests文件夹内。生成的测试类为标准的Junit 4 测试类,可以完全按照Junit 4 的操作规范对其测试。

注意:在使用此工具测试Web项目中和Servlet相关的类时,工具加载不到二级目录的jar包,因此应该把 Server Runtime Library和Web App Library中的jar包再重新导入到工程当中。

1.7点击Windows->Preferences ,查找到EvoSuite即可对其进行设置,设置界面如下

idea中的evosuite 使用,单元测试

参考原文链接:

链接:https://blog.csdn.net/u014163312/article/details/108697883 

链接:https://juejin.cn/post/7106031476289830943文章来源地址https://www.toymoban.com/news/detail-771525.html

到了这里,关于单元测试自动生成工具Evosuite的安装使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 使用testMe自动生成单元测试用例

    使用testMe自动生成单元测试用例

    公司对于系统单元测试覆盖率有要求,需要达到50%或80%以上才可以,但是对于之前的老项目或者是前期赶进度未添加单元测试用例的项目来说,手动添加单元测试耗时又费力,这时候我们就需要一款能够提高效率的一款插件来帮助我们提高单元测试覆盖率,经过对比temstMe、

    2024年02月07日
    浏览(10)
  • 自动生成单元测试,IDEA必备插件.Squaretest

    自动生成单元测试,IDEA必备插件.Squaretest

            很多老项目老代码,或者着急交付的项目,单元测试严重缺失,覆盖率只有5%不到,所以几个小伙伴这几天就在疯狂的堆单元测试,3个人堆了2天才堆到30%,于是我也来上手帮忙写了两个,写到第二个的时候就发现,这个活不应该是人干的,要去看原来的代码,然

    2024年02月16日
    浏览(11)
  • 一款自动生成单元测试的 IDEA 插件

    一款自动生成单元测试的 IDEA 插件

      今天来介绍一款工具Squaretest,它是一款自动生成单元测试的插件,为什么会用到它? 主要因为最近公司上了代码质量管控的指标,会考评各个项目的单元测试覆盖率,以及sonar扫描出来的各种问题,很多老项目老代码,或者着急交付的项目,单元测试严重缺失,覆盖率只有

    2024年04月11日
    浏览(9)
  • IDEA懒人必备插件:自动生成单元测试,太爽了!

    IDEA懒人必备插件:自动生成单元测试,太爽了!

    今天来介绍一款工具Squaretest,它是一款自动生成单元测试的插件,会用到它也是因为最近公司上了代码质量管控的指标,会考评各个项目的单元测试覆盖率,以及sonar扫描出来的各种问题。 很多老项目老代码,或者着急交付的项目,单元测试严重缺失,覆盖率只有5%不到,所

    2024年02月03日
    浏览(15)
  • Springboot 使用插件 自动生成Mock单元测试 Squaretest

    Springboot 使用插件 自动生成Mock单元测试 Squaretest

    很多公司对分支单测覆盖率会有一定的要求,比如 单测覆盖率要达到 60% 或者 80%才可以发布。 有时候工期相对紧张,就优先开发功能,测试功能,然后再去补单元测试。 但是编写单元测试又比较浪费时间,有没有能够很大程度上自动化生成单元测试的插件,自己改下就行

    2023年04月08日
    浏览(14)
  • 自动生成测试用例_接口测试用例自动生成工具

    自动生成测试用例_接口测试用例自动生成工具

    写用例之前,我们应该熟悉API的详细信息。建议使用抓包工具Charles或AnyProxy进行抓包。 我们先来了解一下另一个项目har2case 他的工作原理就是将当前主流的抓包工具和浏览器都支持将抓取得到的数据包导出为标准通用的 HAR 格式(HTTP Archive),然后 HttpRunner 将 HAR 格式的数据

    2024年02月05日
    浏览(14)
  • MATLAB/ SIMULINK模型在环MIL测试工具,自动化模型测试工具,自动生成测试报告

    MATLAB/ SIMULINK模型在环MIL测试工具,自动化模型测试工具,自动生成测试报告

    MATLAB/ SIMULINK模型在环MIL测试工具,自动化模型测试工具,自动生成测试报告。 软件纯自己编写,经过长时间测试,包教会。 使用简单,可以参考如下截图。 ID:972000 677200256038 悦潮风尚

    2024年02月16日
    浏览(17)
  • 自动生成单元测试、外挂开源代码库等新功能,上线JetBrains IDEs的CodeGeeX插件!

    自动生成单元测试、外挂开源代码库等新功能,上线JetBrains IDEs的CodeGeeX插件!

    CodeGeeX第三代模型发布后,多项基于第三代模型能力的新功能今天也同步上线JetBrains IDEs全家桶。 用户可以在IDEA、PyCharm等JetBrains系的IDE中,搜索下载CodeGeeX v2.5.0版本,深度使用最新功能。 一、新模型加持的代码补全和智能问答 以IDEA为例,在v2.5.0版本的CodeGeeX插件中,用户可

    2024年03月13日
    浏览(44)
  • Selenium IDE :安装、配置、录制 轻松生成UI自动化测试脚本

    Selenium IDE :安装、配置、录制 轻松生成UI自动化测试脚本

    Selenium IDE 是一个用于 Web 测试的集成开发环境。是 Chrome 和 Firefox 的插件,可以记录和回放与浏览器的交互过程。 可以从SeleniumIDE官方地址下载:https://www.selenium.dev/selenium-ide/ 打开浏览器,这里使用的是chrome浏览器。选择\\\"更多工具扩展程序\\\" **注意:**必须要打开“开发者模式

    2024年02月14日
    浏览(14)
  • AI自动生成代码工具

    AI自动生成代码工具

    AI自动生成代码工具是一种利用人工智能技术来辅助或自动化软件开发过程中的编码任务的工具。这些工具使用机器学习和自然语言处理等技术,根据开发者的需求生成相应的源代码。以下是一些常见的AI自动生成代码工具,希望对大家有所帮助。北京木奇移动技术有限公司,

    2024年02月04日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包