本篇文章主要介绍了"elixir 使用Elixir来优化Erlang的单元测试用例",主要涉及到elixir方面的内容,对于软件测试感兴趣的同学可以参考一下:
erlang的单元测试相信很多人都用过,体验不好,但是elixir出现后,似乎这个体验有机会赶超rspec,那就哈哈哈了。 初学elixir/mix,苦于...
Compiled src/rebar_mix_test_sup.erl
Compiled src/mix_worker.erl
erl -pa deps/*/ebin ebin/
zsh: no matches found: deps/*/ebin
erl -pa ebin/
Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Eshell V7.3 (abort with ^G)
1> application:start(rebar_mix_test).
ok
2> observer:start().
ok
3> mix_worker:add(3,3).
6
4> mix_worker:double(232).
464
5>
这个mix_worker如果想在eunit里面写单元测试用例是比较难的,我尝试写一个:
test/mix_worker_tests.erl
-module(mix_worker_tests).
-compile([export_all]).
-include_lib("eunit/include/eunit.hrl").
add_test() ->
3 = mix_worker:add(1,2),
ok.
执行测试:
rebar eunit ==> rebar_mix_test (eunit) Compiled test/mix_worker_tests.erl mix_worker_tests: add_test (module 'mix_worker_tests')...*failed* in function gen_server:call/2 (gen_server.erl, line 204) in call from mix_worker_tests:add_test/0 (test/mix_worker_tests.erl, line 7) **exit:{noproc,{gen_server,call,[mix_worker,{add,1,2}]}} output:<<"">> ======================================================= Failed: 1. Skipped: 0. Passed: 0. ERROR: One or more eunit tests failed. ERROR: eunit failed while processing /Users/zhuoyikang/source/services/rebar_mix_test: rebar_abort |
抓瞎了,mix_worker没有启动,那么怎么测呢?
尝试在测试用例中启动rebar_mix_test:
add_test() ->
ok = application:start(rebar_mix_test),
3 = mix_worker:add(1,2),
ok = application:stop(rebar_mix_test),
ok.
以上就介绍了elixir 使用Elixir来优化Erlang的单元测试用例,包括了elixir方面的内容,希望对软件测试有兴趣的朋友有所帮助。
本文网址链接:http://www.codes51.com/article/detail_3300568_2.html