2012-06-29 1 views
8

J'ai un projet Rebar avec un répertoire de version de niveau supérieur qui inclut uniquement les applications de composants en tant que dépendances et contient la configuration de reltool.Comment faire pour que Rebar exécute Common Test dans un répertoire de version?

Certaines de mes applications ont des suites de tests communes dans les sous-répertoires test, et je peux exécuter ces tests avec rebar ct.

Maintenant, je veux créer une suite de tests commune pour l'ensemble de la version. Cependant, quand je lance rebar ct skip_deps=true dans le répertoire de niveau supérieur, je viens d'obtenir:

Command 'ct' not understood or not applicable 

Comment puis-je faire exécuter mes tests Rebar?

Répondre

10

Rebar a trois ensembles de modules (voir rebar.app):

  • any_dir_modules qui s'appliquent à un répertoire dans votre projet;
  • app_dir modules, qui s'appliquent uniquement aux répertoires contenant des fichiers correspondant à src/*.app.src ou ebin/*.app (voir rebar_app_utils:is_app_dir/1); et
  • rel_dir modules, qui s'appliquent uniquement aux répertoires contenant reltool.config ou reltool.config.script (voir rebar_rel_utils:is_rel_dir/1).

Le module rebar_ct, qui est responsable de l'exécution de test commune, est dans la catégorie app_dir et votre répertoire de sortie de haut niveau est donc pas éligible.

Vous pouvez contourner ce problème en spécifiant que rebar_ct est un plugin, car les plugins ignorent le mécanisme de catégorie de module. Mettez la ligne suivante dans votre rebar.config:

{plugins, [rebar_ct]}. 

Et vous obtiendrez:

$ 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 
Questions connexes