Quelqu'un at-il rencontré un crochet de pré-validation SVN qui fonctionne avec la logique suivante?SVN crochet pour vérifier une modification a également été apportée à la classe de test correspondant
Si "MyClass.java" a été modifié et est en cours de validation, il doit également y avoir une modification de "MyClassTest.java", par convention de dénomination.
Le but ici est de s'assurer qu'un développeur a apporté des modifications au test unitaire correspondant, lorsqu'il a changé un morceau de code.
Je sais que cela peut être triché en changeant simplement un peu de formatage. Mais le but n'est pas d'arrêter de tricher. Il s'agit d'encourager fortement le développement piloté par les tests dans une équipe qui y évolue.
Un bonus serait, car lorsque le changement est juste un refactor, pour que le hook ignore la vérification si le commentaire de soumission a le mot "REFACTOR". (après que tous les refacteurs purs devraient toujours être engagés par eux-mêmes)
Cela semble un peu restrictif. Que faire si vous ne faites que refactoriser le code et n'avez pas besoin d'un nouveau test? Ou si vous ajoutez juste un test? –
Ajout d'un nouveau test ne devrait pas importer. Quant au refactoring, il devrait peut-être y avoir un override - example: si le commit commente contient le mot "REFACTOR" alors ne faites pas le test check – Patrick
Pour ajouter à ce que dit @Alexandre, que faire si vous modifiez une interface? Avez-vous un test Test.java? Il semble exagéré de faire un test pour une interface juste pour satisfaire le crochet de validation SVN. Nous utilisons beaucoup TDD, et souvent lorsque nous refactorisons du code qui a déjà un tas de tests, nous pouvons refactoriser sans crainte car le code est déjà testé à 100%. Pourquoi devrais-je être forcé de faire un changement au test, les tests couvrent déjà 100% du code ... –