有没有办法在Erlang/OTP中使用Eunit只在单个模块中运行单元测试?

laawzig2  于 2022-12-08  发布在  Erlang
关注(0)|答案(5)|浏览(143)

我有很多模块都有单元测试。有没有办法只在一个模块中运行单元测试?
以下是模块的相关部分:

-export([ ..... ])
-include_lib("eunit/include/eunit.hrl").
...
...
...
first_test() ->
  ...
  ...

second_test() ->
  ...
  ...
yc0p9oo0

yc0p9oo01#

运行模块/套件中的所有测试(如iuriza的答案):

rebar eunit suite=mod_name

或者你也可以指定一个单独的测试用例(通过函数名):

rebar eunit tests=mod_name:test_name

参考文献:

kx5bkwkv

kx5bkwkv2#

eunit:test(yourmodule)yourmodule:test()应该可以正常工作。

3bygqnnd

3bygqnnd3#

如果您正在使用rebar3,则可以根据Running Tests文档使用--module选项。

rebar3 eunit --module=your_module

如果您有大量的模块,但只想对其中的几个模块运行测试,您可以用逗号分隔名称:

rebar3 eunit --module=first_module,second_module,third_module

文档中有很多提示,可以将测试限制在单个应用程序、文件等。

kx5bkwkv

kx5bkwkv4#

您也可以用途:

rebar clean eunit suite=your_module
7ivaypg9

7ivaypg95#

Improving on the response from Adam Linberg, I did:

rebar3 as test shell

which makes possible to compile unit test files. Then you can type:

eunit:test(yourmodule)

or

yourmodule:test()

相关问题