Exécution de la nuit se construit en tant que tâche planifiée XP - problème de chemin de classe

StackOverflow https://stackoverflow.com/questions/756603

  •  09-09-2019
  •  | 
  •  

Question

J'exécute Junit Nightly construit sur mon ordinateur comme une tâche planifiée dans Windows XP. Mon application utilise JAXB, donc certains des tests doivent faire référence à des schémas XSD en utilisant le System ClassPath. Lorsque la construction nocturne fonctionne pendant que je ne suis pas sur l'ordinateur, j'obtiens une erreur comme ceci:

Java.lang.Exception: Impossible de charger le schéma myschema.xsd de ClassPath

Cependant, lorsque j'exécute la construction manuellement, je n'obtiens pas une telle erreur. La variable d'environnement pour l'emplacement de mes schémas est un Système variable, pas une variable utilisateur, donc je ne sais pas ce qui pourrait provoquer cette erreur. Quelle pourrait être à cause de cette erreur?

ÉDITER: Des alternatives comme Hudson n'est pas ce que je demande. Je demande une solution pour la technologie décrite ci-dessus (fichier batch en cours d'exécution comme une tâche planifiée).

Était-ce utile?

La solution

Ma suspicion est que votre répertoire de travail est différent de ce que vous attendez (plutôt que de la variable ClassPath spécifiquement). Il n'est pas immédiatement évident si vous exécutez cette tâche planifiée en tant qu'utilisateur ou en tant que tâche système. Dans les deux cas, cela vaut la peine de découvrir exactement où la tâche est en cours d'exécution.

Cela dit, alors que j'avais l'habitude de configurer des versions automatiques à l'aide de tâches planifiées Windows XP (exactement comme vous le faites maintenant), nous utilisons actuellement Régulateur de vitesse. Dans le résumé, ce n'est pas très différent de ce que vous faites (exécuter une construction régulièrement) mais ça augmente votre flexibilité. Ici, la capacité la plus précieuse de CruiseControl est de détecter que les changements ont été commis et d'exécuter uniquement la construction alors. Nous découvrons les constructions cassées, les tests unitaires cassés, etc., dans les 10 minutes suivant un engagement maintenant.

Autres conseils

Hudson est un autre moteur d'intégration continue, qui est très très simple à configurer:

Hudson propose les fonctionnalités suivantes:

  • Installation facile: juste java -jar Hudson.war, ou le déployer dans un conteneur de servlet. Pas d'installation supplémentaire, pas de base de données.
  • Configuration facile: Hudson peut être entièrement configuré à partir de ses GUI Web amicaux avec des vérifications d'erreur à la volée et une aide en ligne. Il n'est plus nécessaire de modifier le XML manuellement, bien que si vous souhaitez le faire, vous pouvez aussi le faire.
  • Support des modifications: Hudson peut générer une liste de modifications apportées à la construction à partir de CVS / Subversion / Mercurial. Cela se fait également de manière assez efficace, pour réduire la charge du référentiel.
  • Liens permanents: Hudson vous donne des URL lisibles propres pour la plupart de ses pages, y compris certains liens permalinks "dernier build" / "dernier build réussi", afin qu'ils puissent être facilement liés à partir d'ailleurs.
  • Intégration RSS / E-Mail / IM: Monitor des résultats de construction par RSS ou par e-mail pour obtenir des notifications en temps réel sur les échecs.
  • Le marquage après le fait: les builds peuvent être marqués longtemps après que les builds sont terminés Rapports de test JUNIT / TESTNG: les rapports de test JUnit peuvent être tabulés, résumés et affichés avec des informations sur l'historique, comme lorsqu'elle a commencé à se casser, etc. La tendance de l'historique est tracée dans un graphique.
  • Builds distribués: Hudson peut distribuer des charges de construction / test à plusieurs ordinateurs. Cela vous permet de tirer le meilleur parti de ces postes de travail inactifs assis sous les bureaux des développeurs. Fichier d'empreintes digitales: Hudson peut garder une trace dont la construction a produit quels pots, et quelle build utilise quelle version de bocaux, etc. Cela fonctionne même pour les pots produits en dehors de Hudson, et est idéal pour les projets pour suivre la dépendance.
  • Prise en charge du plugin: Hudson peut être étendu via des plugins tiers. Vous pouvez écrire des plugins pour fabriquer des outils / processus de support Hudson que votre équipe utilise.

Vous devriez vérifier Hudson ou Régulateur de vitesse. Les deux sont faciles à configurer et prendront en charge ce type de problème pour vous avec plus de rapports, de contrôle et de convivialité améliorée. Vous passerez moins de temps à enquêter sur des problèmes de construction.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top