我有许多带有单元测试的模块。有没有办法只在单个模块中运行单元测试?
这是模块的相关部分的样子:
-export([ ..... ])
-include_lib("eunit/include/eunit.hrl").
...
...
...
first_test() ->
...
...
second_test() ->
...
...
运行模块/套件中的所有测试(作为 iuriza 的回答):
rebar eunit suite=mod_name
或者你也可以指定一个单独的测试用例(通过函数名):
rebar eunit tests=mod_name:test_name
参考:
eunit:test(yourmodule)
或者yourmodule:test()
应该工作。
如果您正在使用,则可以根据他们的Running Tests文档rebar3
使用该选项。--module
rebar3 eunit --module=your_module
如果您有大量模块,但只想为其中几个运行测试,您可以用逗号分隔名称:
rebar3 eunit --module=first_module,second_module,third_module
该文档有很多关于将测试运行限制为单个应用程序、文件等的提示。
您还可以使用:
rebar clean eunit suite=your_module
改进了亚当林伯格的回应,我做了:
rebar3 as test shell
这使得编译单元测试文件成为可能。然后你可以输入:
eunit:test(yourmodule)
或者
yourmodule:test()