rebar3使用介绍(七)测试

  • eunit
  • common test (ct)
  • 代码覆盖率

Rebar3内置了eunit和ct(common_test)测试运行器。通过遵循一些约定,您可以使用单个Rebar3命令运行测试套件。

eunit

运行eunit测试非常简单:

$ rebar3 eunit

Rebar3将带上宏{d, TEST, true}和{d, EUNIT, true}编译所有项目模块,以便您可以安全地隐藏测试代码-ifdef(TEST).或-ifdef(EUNIT).部分。它还将自动编译应用程序test目录中的任何源文件(如果存在)。然后通过调用eunit:test([{application, App}])测试项目中的每个应用程序。

如果要eunit:test/1使用自己的参数调用,可以使用rebar.config的eunit_tests字段。该参数和在shell里加的参数是等价的,文档在这里。Rebar3将尽力确保编译测试中指定的任何模块并使其在代码路径上可用。

您还可以仅针对特定应用运行测试:

$ rebar3 eunit --application=some_app,some_other_app

或仅适用于特定模块:

$ rebar3 eunit --module=a,b,c

或者对于特定的测试文件:

$ rebar3 eunit --file="test/my_tests.erl"

或具体目录:

$ rebar3 eunit --dir="test"

common test (ct)

要运行common_test:

$ rebar3 ct

Rebar3将查看所有应用程序的test目录,并编译并运行任何名为的源文件*_SUITE.erl。

要仅运行特定的测试:

$ rebar3 ct --suite=test/first_SUITE,test/second_SUITE

Rebar3有一个内置的common_test运行器,支持大多数测试套件和common_test选项。如果您的测试套件需要使用测试规范或覆盖规格,请注意Rebar3为每个配置文件保留单独的空间,因此,您可能需要调整路径,以指向_build下相关配置文件目录中的模块和目录,以便它们按预期工作。如果需要使用不支持的common_test选项,可以在由rebar3编译过的beam目录下使用以下命令运行common_test

$ ct_run -pa `rebar3 path` ...

代码覆盖率

设置选项{cover_enabled, true},然后运行任何eunit或ct。或者,运行rebar3 eunit --cover或rebar3 ct --cover。

测试运行将生成覆盖数据。之后执行rebar3 cover将生成代码覆盖率报告。

cover工具将会把.coverdata格式的报告保存到对应空间的cover目录下,默认报告文件的名字和任务相关,比如rebar3 ct --cover对应ct.coverdatarebar3 eunit -cover对应eunit.coverdata

额外参数--cover_export_name可用于指定.coverdata文件的名称,例如,如果一个项目有2套测试用例,测试用例test/suites1/和test/suites2:

$ rebar3 ct --dir test/suites1 --cover --cover_export_name=suites1
===> Running Common Test suites...
...
$ rebar3 ct --dir test/suites2 --cover --cover_export_name=suites2
===> Running Common Test suites...
...
$ ls _build/test/cover
cover.log    suite1.coverdata    suite2.coverdata
$ rebar3 cover --verbose
===> Performing cover analysis...|----------------------------|------------||                    module  |  coverage  ||----------------------------|------------||                     ....   |       Y%   ||----------------------------|------------||                     total  |       X%   ||----------------------------|------------|coverage calculated from:_build/test/cover/suites1.coverdata_build/test/cover/suites2.coverdatacover summary written to: _build/test/cover/index.html

rebar3使用介绍(七)测试相关推荐

  1. rebar3使用介绍(六)用户自定义文件配置

    rebar3使用介绍(五)用户自定义文件配置 例子 选项合并算法 依赖和配置文件 依赖永远按照prod模式对应的profile进行编译,不会有其他(当然不包括default)任何东西会被额外的套用上来 ...

  2. rebar3使用介绍(四)依赖

    rebar3使用介绍(四)依赖 声明依赖关系 源依赖 包依赖 Checkout 依赖 更新依赖 锁文件 Lock File 依赖锁管理 依赖关系和配置文件 将始终使用prod应用于其配置的配置文件编译 ...

  3. rebar3使用介绍(三)命令

    rebar3使用介绍(三) as compile clean ct cover deps do dialyzer edoc escriptize eunit get-deps help new pat ...

  4. rebar3使用介绍(二)配置项

    rebar3使用介绍(二) 全局配置 Alias 别名 Artifacts Compilation 测试选项 Cover Dialyzer Distribution Directories 目录 ED ...

  5. Rebar3使用介绍(一)基础用法

    Rebar3使用介绍(一) 安装 基础用法 创建一个新的app或者release 加入deps依赖 编译 输出配置 测试 发布 本文基本都是按照 rebar3官方文档翻译加上自己的理解整理而成,可能有 ...

  6. NoSQL介绍(七)

    NoSQL介绍(七) MongoDB介绍 官网www.mongodb.com c++编写,基于分布式,属于NoSQL的一种 在NoSQL中是最像关系型数据库的 MongoDB将数据存储为一种文档,数据 ...

  7. 【蓝牙模块】三款常用的基础蓝牙模块,HC05,JDY-31,CC2541介绍与测试说明

    文章目录 一. HC05 二.JDY-31 1.介绍 2.测试 二.CC2541 一. HC05 HC05与其他两款的区别是,需要按住RST键进入AT指令模式 一. 上电进入AT模式方法 先按住HC0 ...

  8. FlexRay汽车通信总线介绍及测试环境

    FlexRay汽车通信总线介绍及测试环境 原文链接:http://www.ulantec.cn/a/xinwen/xingyezixun/8.html 综述 FlexRay通信总线是由多个汽车制造商和 ...

  9. 【读码JDK】- java.lang.Double类Api介绍及测试

    [读码JDK]java.lang包目录 请自行调整包路径,中文仅供参考. java.lang.Double类Api介绍及测试 package lang;import org.junit.Test;/* ...

最新文章

  1. Go 读取 yaml 文件并解析
  2. golang的定时器NewTimer、NewTicker使用
  3. java 跟踪错误程序_Java异常处理 如何跟踪异常的传播路径
  4. linux mysql ibd_MySQL:如何从ibd文件中恢复数据
  5. cheatengine找不到数值_彩票中奖500万,领了还不到一半?这些问题不解决,钱都拿不走...
  6. 【电路补习笔记】3、电感的参数与选型
  7. Android BroadcastReceiver,广播与进程通讯,APK安装广播,获取已安装列表
  8. 【BZOJ4516】生成魔咒,后缀数组+Splay
  9. STL之partial_sum
  10. java多线程之生产者消费者问题
  11. 帝国CMS操作类型一览表
  12. 高程3总结#第20章JSON
  13. leetcode笔记:Validate Binary Search Tree
  14. Hadoop入门进阶步步高(五)-搭建Hadoop集群
  15. 更改html默认浏览器,怎么更改默认浏览器?默认浏览器设置在哪里
  16. Scade Suite开发 ARINC 661 (2)Scade Suite基本操作
  17. 半导体的PN结及其基本特性
  18. 【图解CAN总线】-8-CANFD总线网络“负载率”计算
  19. 文件服务器禁用u盘复制数据,如何禁止U盘拷贝
  20. windows双系统--WSL 安装使用

热门文章

  1. access 套用表格_在Excel 2013工作表中导入Access数据的方法
  2. 湖南大学计算机学院陈浩,陈浩_湖南大学研究生导师信息
  3. C盘不够用-删除D盘空间贡献给C盘的简单方法
  4. 随机生成指定面积单连通区域
  5. 【芯片锁死】记录ADUCM3029锁死问题及解决方法
  6. 魔兽世界任务制作教学,已经本人自己服务器中测试
  7. matlab获取href,用 MATLAB 抓取网页数据小程序
  8. windows 10禁用账户
  9. 网络协议 -- UDP协议(2)单播
  10. 27m3氨基酸发酵反应釜设计