2010-03-24 5 views

Répondre

0

Vous devriez essayer de séparer autant que possible la fonctionnalité de base pour utiliser des interfaces personnalisables plutôt que l'API Maven directement. De cette façon, vous pouvez tester cette fonctionnalité séparément de l'environnement.

E.g. Si vous lisez des données d'un fichier pendant l'exécution, vous devez injecter un Reader dans votre classe plutôt que de lui ouvrir le fichier lui-même. Ensuite, une classe distincte peut initialiser le flux d'entrée dans la vie réelle, mais dans les tests unitaires, vous pouvez fournir un StringReader préchargé avec la chaîne désirée.

Bien sûr, vous avez également besoin de tests d'intégration - ceux-ci peuvent être exécutés plus simplement en appelant execute() sur votre classe Mojo.

+0

Merci Péter. Mon plugin a un grand nombre de paramètres, donc l'injection de paramètres est une chose que je veux avoir couverte par les tests unitaires. De même, changer les répertoires source et de sortie (mon plugin se rattache à la phase generate-sources) est quelque chose qui devrait être testé. Ce sont les sortes de choses dont je ne suis pas sûr. Tout à fait d'accord que les fonctionnalités de base devraient être extraites de l'API Maven si possible et testé séparément. –

1

Vous avez également besoin de tests d'acceptation (ou de bout en bout). Le maven-invoker-plugin aidera beaucoup dans ce genre de tests.

Questions connexes