2012-06-29 6 views
8

필자는 컴포넌트 애플리케이션을 종속물로 포함하고 reltool 구성을 포함하는 최상위 릴리스 디렉토리가있는 Rebar 프로젝트를 보유하고 있습니다.Rebar가 릴리스 디렉토리에서 Common Test를 실행하도록하려면 어떻게합니까?

내 응용 프로그램 중 일부는 test 하위 디렉토리에 공용 테스트 스위트가 있으며 rebar ct으로 테스트를 실행할 수 있습니다.

이제 전체 릴리스에 대한 공용 테스트 스위트를 만들고 싶습니다. 내가 rebar ct skip_deps=true 최상위 디렉토리에 실행할 때, 난 그냥 얻을 :

Command 'ct' not understood or not applicable 

가 어떻게 철근 내 테스트를 수행 할 수 있습니까?

답변

10

철근은 3 개 개의 모듈 세트 (rebar.app 참조)이 있습니다

  • any_dir_modules, 프로젝트의 디렉토리에 적용;
  • app_dir 모듈은 src/*.app.src 또는 ebin/*.app (rebar_app_utils:is_app_dir/1 참조)과 일치하는 파일이있는 디렉토리에만 적용됩니다.
  • rel_dir 모듈은 reltool.config 또는 reltool.config.script (rebar_rel_utils:is_rel_dir/1 참조)을 포함하는 디렉토리에만 적용됩니다. 일반적인 테스트를 실행하기위한 책임이

rebar_ct 모듈의 app_dir 범주에 있고, 최상위 릴리스 디렉토리 따라서 자격이 없습니다.

플러그인이 모듈 범주 메커니즘을 우회하기 때문에 rebar_ct이 플러그인임을 지정하면이 문제를 해결할 수 있습니다.

{plugins, [rebar_ct]}. 

을 그리고 당신은 얻을 것이다 : 당신의 rebar.config에 다음 줄을 넣어

$ 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 
관련 문제