2012-06-29 18 views
8

Mam projekt Rebar z katalogiem wydań najwyższego poziomu, który zawiera aplikacje składników jako zależności i zawiera konfigurację reltool.Jak sprawić, aby Rebar uruchamiał test wspólny w katalogu wydania?

Niektóre z moich aplikacji mają wspólne zestawy testowe w podkatalogach test i mogę uruchomić te testy za pomocą rebar ct.

Teraz chcę utworzyć zestaw testów wspólnych dla całego wydania. Jednak, gdy biegnę rebar ct skip_deps=true w katalogu najwyższego poziomu, ja po prostu:

Command 'ct' not understood or not applicable 

Jak mogę dokonać zbrojenia uruchamiane moich testów?

Odpowiedz

10

zbrojeniowych ma trzy zestawy modułów (patrz rebar.app):

  • any_dir_modules, które odnoszą się do dowolnego katalogu w projekcie;
  • app_dir moduły, które mają zastosowanie tylko do katalogów zawierających pliki pasujące do src/*.app.src lub ebin/*.app (patrz rebar_app_utils:is_app_dir/1); i
  • rel_dir moduły, które mają zastosowanie tylko do katalogów zawierających reltool.config lub reltool.config.script (patrz rebar_rel_utils:is_rel_dir/1).

Moduł rebar_ct, który jest odpowiedzialny za prowadzenie Wspólnej test jest w kategorii app_dir, a katalog release najwyższego poziomu nie jest zatem uprawnione.

Można obejść to, określając, że rebar_ct jest wtyczką, ponieważ wtyczki omijają mechanizm kategorii modułów. Umieścić następującą linię w rebar.config:

{plugins, [rebar_ct]}. 

a dostaniesz:

$ rebar ct skip_deps=true 
==> foo (ct) 
==> bar (ct) 
==> my_rel (ct) 
DONE. 
Testing src.my_rel: TEST COMPLETE, 0 ok, 0 failed of 0 test cases