EUnit

运行所有 EUnit 测试套件

$ rebar3 eunit

Rebar3 将编译所有项目模块,并定义宏 {d, TEST, true}{d, EUNIT, true},以便您可以安全地将测试代码隐藏在 -ifdef(TEST).-ifdef(EUNIT). 部分中。如果存在,它还会自动编译应用程序 test 目录中的任何源文件。默认情况下,Rebar3 通过对项目中的每个应用程序调用 eunit:test([{application, App}]) 来运行测试。

默认情况下,eunit 命令作为 test 配置文件运行。有关详细信息,请参阅 配置文件

有关可用选项及其用法,请参阅 命令

$ rebar3 help eunit

测试选择

以下标志可以单独或组合提供。

应用

仅运行特定应用程序的测试

$ rebar3 eunit --application=app1,app2

格式为应用程序名称的逗号分隔列表。

别名:--app

模块

仅运行特定模块的测试

$ rebar3 eunit --module=mod1,mod2,mod3

格式为模块名称的逗号分隔列表。

别名:--suite

测试用例

仅运行特定的测试用例

$ rebar3 eunit --test=mod1:test1+test2,mod2:test1

格式为 测试函数的逗号分隔列表

生成器

仅运行特定的测试用例生成器

$ rebar3 eunit --generator=mod1:gen1+gen2,mod2:gen1

格式为 测试函数的逗号分隔列表

文件

仅运行特定文件的测试

$ rebar3 eunit --file="test/mod1.erl,test/mod2.erl"

格式为文件路径的逗号分隔列表。

目录

仅运行特定目录的测试

$ rebar3 eunit --dir="test,extra_tests"

格式为目录路径的逗号分隔列表。

测试函数格式

选择特定测试函数的格式为 Module:Func 规范的逗号分隔列表。可以通过加号 + 符号分隔同一模块中的多个函数,例如 Module:Func1+Func2(或者也可以用分号 ; 分隔)。

配置选项

以下配置选项可以在 rebar.config 中设置。

eunit_tests

您可以更改运行 rebar3 eunit 时调用的默认测试 eunit:test/1(而不是默认的所有应用程序中的所有测试)。

该配置必须是一个包含 EUnit 测试表示的列表,如 此处 所述。Rebar3 将尽最大努力确保测试中指定的任何模块都已编译并在代码路径上可用。

示例

{eunit_tests, [{module, smoke_tests}]}.
{eunit_tests, [{inparallel, mod1}]}.

eunit_opts

可以配置默认的 EUnit 选项,如 此处 所述。

有趣的未记录选项包括

  • no_tty 完全禁用默认的 EUnit 报告程序输出

  • {report, {Module, Args}} 运行自定义的 EUnit 报告程序(将结果打印到 shell 的功能)。报告程序模块需要实现以下回调

    -export([start/0]).
    -export([start/1]).
    -export([init/1]).
    -export([handle_begin/3]).
    -export([handle_end/3]).
    -export([handle_cancel/3]).
    -export([terminate/2]).
    

no_ttyreport 可以组合使用,以自定义报告程序替换 EUnit 报告程序

{eunit_opts, [no_tty, {report, {my_reporter, Opts}}]}.
最后修改时间:2023 年 1 月 9 日:修复损坏的链接 (da4612d)