À l'intérieur de mon IDE (Eclipse ou Netbeans, peu importe), j'ai des crises test de test (mais ma question fait également référence aux tests Junit distants), qui sont des tests d'intégration. Ces tests ont besoin d'un serveur d'intégration à exécuter, ils ne peuvent pas être exécutés sur une machine locale. Ils ont besoin de l'environnement complet du serveur d'intégration - pas seulement des trucs liés à conteneur Javae (=> pas d'arquillian ni de jeunit). P>
Maintenant, je veux pouvoir exécuter ces tests de mon IDE (Eclipse) - de préférence avec le plugin de test - mais lorsque je les lance, ils doivent réellement être exécutés sur le serveur d'intégration distant. P>
est-il possible de lancer des tests d'intégration sur un serveur distant de mon IDE? J'aime l'idée d'avoir une sorte d'agent sur le serveur distant qui attend les demandes de test et les exécute. Mais comme je l'ai dit, ce serait bien si cela fonctionne de l'intérieur du plugin de test. P>
Ai-je besoin d'une certaine solution de contournement, par exemple des scripts de fourmis (espérons-le) ou une magie mavenée? Quelles sont les meilleures pratiques? P>
Je sais que je pourrais également créer desservices pour ma demande, puis je peux les appeler des tests d'unités locales. Mais j'aimerais savoir s'il existe également des possibilités sans webservices. Em> p>
4 Réponses :
Malheureusement, je n'ai pas de solution prête, mais je pense que je peux vous donner des conseils depuis que j'ai passé du temps à penser à cela. p>
Je ne sais pas sur Testng mais Junit a la possibilité de plier votre propre exécutif test. Je suis sûr que le test contient des fonctionnalités appropriées. Alors, trouvez-le et connais-le. Étant donné que vous pouvez contrôler la manière dont votre test est appelé, vous pouvez même faire autre chose au lieu d'appeler les méthodes du boîtier de test. Par exemple, appelez une API distante qui fera le test à distance. p>
Évidemment, il peut s'agir d'un service Web qui rend l'agent distant (selon votre suggestion) pour exécuter le test sur une machine distante. C'est bon, mais j'aime plus les solutions d'agent moins ou semi-agent. Qu'est ce que je veux dire? Si, par exemple, votre machine distante est UNIX, vous pouvez effectuer une connexion SSH ou Telnet et exécuter la ligne de commande. Dans ce cas, vous pouvez créer un script MVN ou Ant, copier à la machine distante à l'aide de SSH, puis exécutez-la. Le script exécutera vos tests. Donc, c'est presque l'agent moins. Vous avez juste besoin de Java Installation et SSH Support. p>
Si la machine distante est Windows, vous pouvez utiliser Telnet ou WMI. Donc, si la sécurité n'est pas un problème, mais vous avez besoin d'une prise en charge croisée de la plate-forme Telnet. p>
S'il vous plaît n'hésitez pas à me contacter si vous avez besoin de plus d'aide concernant SSH / Telnet. P>
Merci. Nous exécutons déjà des tests sur les machines distantes en utilisant UNIX Tools and Ant. Mais l'expérience de développement serait bien meilleure si vous pouvez exécuter le test directement à partir de l'IDE (et les déboguer facilement) et obtenir la "barre verte" directement à côté du code (pas sur une page Web à ouverture séparément comme Hudson / Jenkins).
Comment vous accomplir cela dépend beaucoup de ce serveur d'intégration et IDE que vous utilisez, et ce que vous êtes application est. Je suppose que vous utilisez Eclipse; et je suppose que vous utilisez Jenkins , car il sera l'OMI le plus facile à obtenir pour quoi faire vous voulez. p>
La plupart de cela fonctionnera hors de la boîte. Cependant, il y a un peu qui nécessitera une partie de travail supplémentaire. P>
Vous aurez envie de faire ce qui suit: p>
Maintenant vient la partie un peu plus compliqué d'accrochage Eclipse à Jenkins. Malheureusement, je ne pense pas qu'il y ait des outils pré-existantes qui vont faire exactement ce que vous voulez. Les bonnes nouvelles sont qu'il devrait être très simple à réaliser avec un script personnalisé. Tout le script doit faire est: p>
ProgramFile $ code> li>
- Il devra envoyer une requête HTTP
http: // : 8080 / / buildwithparameters TestingProgram = $ ProgramFile code> < / li>
ol>
Vous pouvez lire plus sur le déclenchement à distance avec Jenkins construit des paramètres dans la docs jenkins. p>
Le script qui accomplit ces étapes peuvent être à peu près tout. Étant donné que vous souhaitez intégrer à terme dans votre IDE, il semble que les choix les plus logiques serait un script fourmi ou un plug-in Eclipse. Ni serait trop compliqué - le script fourmi juste faire ces étapes, et vous pouvez importer le script ant dans un projet Eclipse spécialement pour faire des tests - et un plugin pourrait simplement ajouter un élément de menu qui, lorsqu'il est exécuté dans un projet, exécuterait les étapes ci-dessus pour ce projet. p>
Remarque: strong> Il y a en fait plusieurs façons de déclencher une compilation avec des paramètres à l'aide de Jenkins. Par exemple, vous pouvez faire une requête POST, l'utilisation JSON pour passer le paramètre tel que décrit dans les jenkins docs I liés à, utilisez le Jenkins CLI, etc. ne sont pas tous d'entre eux travaillent avec des paramètres de fichier, mais vous les utiliser tous dans un manière très similaire - comme une étape dans votre script personnalisé, vous exécuterait une construction à distance sur Jenkins, et de transmettre le fichier que vous souhaitez utiliser pour tester avec. Par exemple, l'explication que je donnai suppose que le fichier de test est très faible; si ce n'est pas le cas, vous pouvez faire une requête POST à la place. Si vous rencontrez des problèmes à l'aide d'une méthode, il devrait être assez facile de passer à utiliser une autre méthode qui fonctionne mieux. P>
Je ne l'ai pas fait moi-même (mes tests sont locaux), mais voici quelques affaires qui pourraient fonctionner: p>
Dans ma solution, je vais déjeuner un serveur JNDI local et ajouter un objet distant (un objet implémente l'interface distante), puis vous pouvez utiliser l'objet distant pour synchroniser votre IDE local et votre serveur distant ou autre endroit. P >