Reputation: 2521
I have a number of modules with unit tests. Is there a way of only running unit tests in a single module?
This is what the relevant section of the module looks like:
-export([ ..... ])
-include_lib("eunit/include/eunit.hrl").
...
...
...
first_test() ->
...
...
second_test() ->
...
...
Upvotes: 8
Views: 3918
Reputation: 1225
Run all tests in the module/suite (as iuriza's answer):
$ rebar3 eunit --module=mod1,mod2,mod3
Or you can also specify an individual test case (by function name):
$ rebar3 eunit --test=mod1:test1+test2,mod2:test1
References:
https://rebar3.org/docs/testing/eunit/
Upvotes: 9
Reputation: 997
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()
Upvotes: 0
Reputation: 66439
If you're using rebar3
you can use the --module
option per their Running Tests doc.
rebar3 eunit --module=your_module
If you have tons of modules, but only want to run tests for a few of them, you can separate the names with commas:
rebar3 eunit --module=first_module,second_module,third_module
The documentation has a lot of tips for limiting the tests run to a single application, file, etc.
Upvotes: 3