rebar3使用介绍(七)测试
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.coverdata
而rebar3 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使用介绍(七)测试相关推荐
- rebar3使用介绍(六)用户自定义文件配置
rebar3使用介绍(五)用户自定义文件配置 例子 选项合并算法 依赖和配置文件 依赖永远按照prod模式对应的profile进行编译,不会有其他(当然不包括default)任何东西会被额外的套用上来 ...
- rebar3使用介绍(四)依赖
rebar3使用介绍(四)依赖 声明依赖关系 源依赖 包依赖 Checkout 依赖 更新依赖 锁文件 Lock File 依赖锁管理 依赖关系和配置文件 将始终使用prod应用于其配置的配置文件编译 ...
- rebar3使用介绍(三)命令
rebar3使用介绍(三) as compile clean ct cover deps do dialyzer edoc escriptize eunit get-deps help new pat ...
- rebar3使用介绍(二)配置项
rebar3使用介绍(二) 全局配置 Alias 别名 Artifacts Compilation 测试选项 Cover Dialyzer Distribution Directories 目录 ED ...
- Rebar3使用介绍(一)基础用法
Rebar3使用介绍(一) 安装 基础用法 创建一个新的app或者release 加入deps依赖 编译 输出配置 测试 发布 本文基本都是按照 rebar3官方文档翻译加上自己的理解整理而成,可能有 ...
- NoSQL介绍(七)
NoSQL介绍(七) MongoDB介绍 官网www.mongodb.com c++编写,基于分布式,属于NoSQL的一种 在NoSQL中是最像关系型数据库的 MongoDB将数据存储为一种文档,数据 ...
- 【蓝牙模块】三款常用的基础蓝牙模块,HC05,JDY-31,CC2541介绍与测试说明
文章目录 一. HC05 二.JDY-31 1.介绍 2.测试 二.CC2541 一. HC05 HC05与其他两款的区别是,需要按住RST键进入AT指令模式 一. 上电进入AT模式方法 先按住HC0 ...
- FlexRay汽车通信总线介绍及测试环境
FlexRay汽车通信总线介绍及测试环境 原文链接:http://www.ulantec.cn/a/xinwen/xingyezixun/8.html 综述 FlexRay通信总线是由多个汽车制造商和 ...
- 【读码JDK】- java.lang.Double类Api介绍及测试
[读码JDK]java.lang包目录 请自行调整包路径,中文仅供参考. java.lang.Double类Api介绍及测试 package lang;import org.junit.Test;/* ...
最新文章
- Go 读取 yaml 文件并解析
- golang的定时器NewTimer、NewTicker使用
- java 跟踪错误程序_Java异常处理 如何跟踪异常的传播路径
- linux mysql ibd_MySQL:如何从ibd文件中恢复数据
- cheatengine找不到数值_彩票中奖500万,领了还不到一半?这些问题不解决,钱都拿不走...
- 【电路补习笔记】3、电感的参数与选型
- Android BroadcastReceiver,广播与进程通讯,APK安装广播,获取已安装列表
- 【BZOJ4516】生成魔咒,后缀数组+Splay
- STL之partial_sum
- java多线程之生产者消费者问题
- 帝国CMS操作类型一览表
- 高程3总结#第20章JSON
- leetcode笔记:Validate Binary Search Tree
- Hadoop入门进阶步步高(五)-搭建Hadoop集群
- 更改html默认浏览器,怎么更改默认浏览器?默认浏览器设置在哪里
- Scade Suite开发 ARINC 661 (2)Scade Suite基本操作
- 半导体的PN结及其基本特性
- 【图解CAN总线】-8-CANFD总线网络“负载率”计算
- 文件服务器禁用u盘复制数据,如何禁止U盘拷贝
- windows双系统--WSL 安装使用