Comment configurer des chemins vers mes fichiers JavaScript dans le manualspecrunner de Jasmine / Maven AutoGenerated.html?
-
28-10-2019 - |
Question
Je pense que la question en dit la plupart. J'ai un fichier manualspecrunner.html autogener
<jasmineTargetDir>${basedir}/pathForMyWebapp</jasmineTargetDir>
Cependant, tous les liens vers des fichiers JS dans le manualspecrunner.html sont un fichier codé dur: /// références - c'est un peu mental, je veux qu'ils soient simplement les chemins relatifs des fichiers qui sont également dans le webapp, c'est-à-dire
Actuellement, cela me donne ce chemin:
file:///home/username/code/HEAD/pathForMyWebapp/js/yui.js
alors que j'en ai besoin pour avoir le plus simple
/pathForMyWebapp/js/yui.js
J'ai essayé de changer deux autres variables dans le script Maven, mais aucun ne semble avoir l'effet souhaité, aucune de ces options de configuration ne fait ce dont j'ai besoin, la seconde n'ayant apparemment aucun effet:
<jsSrcDir>/pathForMyWebapp</jsSrcDir>
ni
<jsTestSrcDir>/pathForMyWebapp</jsTestSrcDir>
J'ai examiné la documentation, mais je pense que je dois manquer quelque chose (plus, plus de notes sur divers paramètres de configuration répertoriés dans https://github.com/searls/jasmine-maven-plugin/blob/master/src/main/java/com/github/searls/jasmine/abstractjasminemojo.java sont censés faire seraient utiles pour que je puisse m'entraîner si je le fais mal ou si ce n'est pas possible!)
Aucune suggestion?
PS J'ai changé certains des noms de chemin car ils ont des informations sensibles, alors veuillez ignorer leur bizarrerie!
La solution
Je pense que je comprends la source de votre confusion. On dirait que vous essayez de diriger la cible du jasmin-maven-plugin vers un répertoire à l'intérieur Le fichier .war emballé * de votre projet afin que vous puissiez exécuter vos spécifications par rapport au code après avoir été déployé sur un serveur, est-ce exact?
Malheureusement, le plugin n'a pas été conçu avec cette utilisation à l'esprit. La jasmineTargetDir
Le répertoire est généralement laissé à sa valeur par défaut de target/jasmine
et n'était pas destiné à être regroupé avec votre application (elle est analogue à la target/surefire-reports
Généré par Maven-Surefire-Plugin pour les tests unitaires Java). Donc la raison pour laquelle le script marque dans ManualSpecRunner.html
Le point vers des emplacements non valides est dû au fait que ce fichier est généré afin d'être exécuté à partir du système de fichiers local dans un navigateur de la station de travail qui construit le projet (pour faciliter le TDD).
Tout cela pour dire, si je lis votre intention correctement, je pense que ce serait une fonctionnalité intéressante pour créer un troisième coureur de spécifications qui pourrait être déployé avec l'application et exécuté à distance. (Surtout si les spécifications du jasmin du projet sont fonctionnelles / intégration par opposition aux tests unitaires isolés.) Malheureusement, ce n'est pas encore quelque chose que le projet fait.
J'ai peur que pour l'instant, si vous aviez besoin de faire passer les tests de jasmin et de les exécuter sur le serveur déployé, vous devrez copier ManualSpecRunner.html
Et le jasmin dans votre src/main/webapp
, corriger les références de balise de script, puis le maintenir manuellement lorsque des fichiers sont ajoutés et supprimés.
Avoir du sens?