5

我有许多带有单元测试的模块。有没有办法只在单个模块中运行单元测试?

这是模块的相关部分的样子:

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

second_test() ->
  ...
  ...
4

5 回答 5

6

运行模块/套件中的所有测试(作为 iuriza 的回答):

rebar eunit suite=mod_name

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

rebar eunit tests=mod_name:test_name

参考:

于 2015-12-01T12:39:13.157 回答
5

eunit:test(yourmodule)或者yourmodule:test()应该工作。

于 2012-01-16T18:42:09.247 回答
3

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

rebar3 eunit --module=your_module

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

rebar3 eunit --module=first_module,second_module,third_module

该文档有很多关于将测试运行限制为单个应用程序、文件等的提示。

于 2018-04-18T18:20:11.847 回答
0

您还可以使用:

rebar clean eunit suite=your_module
于 2015-10-06T22:59:06.890 回答
0

改进了亚当林伯格的回应,我做了:

rebar3 as test shell

这使得编译单元测试文件成为可能。然后你可以输入:

eunit:test(yourmodule)

或者

yourmodule:test()
于 2021-02-17T08:44:10.893 回答