Sorunun bağımlılık olmadığını anladım. Sorunu yeniden üreten örnek code yazdım.
Erlang kabuktan ct: run_test/1 komutunu çalıştırırken her zaman ebin dizinine (-pa seçeneği ile) mutlak yol ayarlanmalıdır.
$ ./rebar3.1 compile && erl -pa _build/default/lib/ct_fail/ebin/
> ct:run_test([{spec,"test/spec"}]).
hata ile başarısız olur:
Aksi ortak testler komutuyla erlang kabuk başladı
=== ERROR! init_per_testcase crashed!
Location: [{ct_fail,start_link},
{fail_SUITE,init_per_testcase,16},
{test_server,do_init_per_testcase,1191},
{test_server,run_test_case_eval1,955},
{test_server,run_test_case_eval,926}]
Reason: {undef,[{ct_fail,start_link,[1,2],[]},
{fail_SUITE,init_per_testcase,2,
[{file,"fail_SUITE.erl"},{line,16}]},
{test_server,do_init_per_testcase,2,
[{file,"test_server.erl"},{line,1191}]},
{test_server,run_test_case_eval1,6,
[{file,"test_server.erl"},{line,955}]},
{test_server,run_test_case_eval,9,
[{file,"test_server.erl"},{line,926}]}]}
en ilginç parçası olduğunu module_info
komut test çalışması öncesinde yürütüldüğünde :
$ ./rebar3.1 compile && erl -pa _build/default/lib/ct_fail/ebin/
> ct_fail:module_info().
ct_fail:module_info().
[{module,ct_fail},
{exports,[{start_link,0},
{start_link,1},
{start_link,2},
{start_link,3},
{start_link,4},
{init,1},
...
> ct:run_test([{spec,"test/spec"}]).
t tavuk testleri başarılı olacak! Bu arada
testi başarısız olduğunda: Test yetmezliği oluşmuş
$ ./rebar3.1 compile && erl -pa _build/default/lib/ct_fail/ebin/
> ct:run_test([{spec,"test/spec"}]).
...
işlev çağrısı modülü ihracatı listeden kaybolur:
> ct_fail:module_info().
[{module,ct_fail},
{exports,[{start_link,0},
{start_link,1},
{start_link,3},
{start_link,4},
{init,1},
...
ct_fail:start_link/2
artık ihraç edilmez!
"eredis" ve "eredis_client" iki ayrı modüldür. – Amiramix
Thnx [Amiramix] (http://stackoverflow.com/users/745250/amiramix). Yazım hatasıydı. Aslında eredis_client [eredis] 'in bir parçasıdır (https://github.com/wooga/) ve ayrıca yüklenmiştir: '> eredis: module_info(). [{ihracatı [{start_link, 0}, {start_link, 2}, ... {start_link, 6} ' ct: İki farklı test ishal için run_test bana iki farklı hataları verdi ama şimdi şekil istiyorum ct: run_test komutunun neden herhangi bir bağımlılık ile başarısız olduğu. –
Sorunuzda, ihracat listesinde 'start_link/3', hatanın mevcut olmadığından şikayet ettiği listelenmiyor. Start_link/3'ün dışa aktarıldığından emin misiniz? eğer öyleyse, lütfen soruyu uygun bir şekilde düzenleyin. – Amiramix