2010-01-21 4 views
4

J'essaie de lancer DOH à partir de dojo-1.3.2 pour tester des fonctions Javascript simples à partir de la ligne de commande. Cependant, je n'arrive pas à faire quoi que ce soit à faire et le net semble être dépourvu de documentation en ligne de commande DOH.Test de ligne de commande DOH des fonctions JavaScript en dehors de la racine Dojo

Idéalement la structure que je voudrais est:

Tests résident: C: \ MyProject \ Tests \

Dojo résident: C: \ dojo 1.3.2 \ util \ doh

en ce moment j'ai mis un test simple .. \ doh \ tests

J'essaie de courir alors que dans le répertoire .. \ doh:

java jar .. \ shrinksafe \ js.jar runner.js TestModule = tests.module

Chaque fois que je reçois:

js: exception uncaught d'exécution JavaScript: ReferenceError: "fenêtre" est pas éd. Une exception s'est produite: Erreur: Impossible de charger 'tests.module'; dernière essayé « tests/module.js » 0 des tests à exécuter dans 0 groupes

Y at-il quelque chose que je devrais faire que je l'ai laissé de côté? J'ai également essayé de pointer vers le fichier dojo.js en utilisant dojoUrl = mais toujours la même erreur. Pour autant que je puisse voir mes tests, n'utilisez pas window n'importe où. J'ai trois fichiers:

tests/module.js

dojo.provide("tests.module"); 
dojo.require("tests.functions.functions"); 

tests/fonctions/functions.js

dojo.provide("tests.functions.functions"); 
dojo.require("tests.demoFunctions"); 

doh.register("tests.functions.functions", [ 
    function test_alwaysTrue(){ 
     doh.assertTrue(tests.demoFunctions.alwaysTrue()); 
    } 
]); 

tests/demoFunctions.js

dojo.provide("tests.demoFunctions"); 

tests.demoFunctions.alwaysTrue = function(){ 
    return true; 
}; 

J'ai aussi essayé de restructurer le répertoire pour avoir ../dojo-1.3.2/ contenir les tests. L'exécution de la même commande que celle ci-dessus à partir de l'invite de commande échoue de manière identique. Dir Structure:

/dojo-1.3.2 

    /dojo 
    /tests 
    ... 
    /util 

     /shrinksafe 
     ... 
     /doh 

Répondre

1

Je ne sais pas où la « fenêtre » vient, mais je ne pense pas que doh jamais travaillé correctement avec des tests en dehors du répertoire Dojo. Cela fonctionne-t-il si vous copiez util/doh pour être un pair de votre répertoire de tests?

+0

J'ai déplacé mon/tests/... dans le répertoire util/doh/et ont exécuté la même commande "java -jar .. \ shrinksafe \ js.jar runner.js testModule = tests.module" et j'ai toujours le même problème. J'ai également essayé une version mise à jour de js.jar et du runner.js de dojo-1.4.0. Rien ne s'était amélioré. – faust

+0

Désolé, j'ai déplacé le dossier/tests pour être un pair (pas enfant cette fois) de util/doh/et il échoue encore – faust

+0

ok, encore une chose ... essayez de renommer votre répertoire 'tests' et tous les tests. * références à autre chose ... Je ne sais pas où c'est, mais je pense que les tests. * correspond au dojo. * Lorsque vous exécutez le runner.js avec ses tests de dojo par défaut, il les référence tous comme tests. * Dijit et les tests DojoX ne le font pas. On dirait quelque chose qui a besoin d'être nettoyé! – peller

1

Si vous souhaitez que votre testFolder soit stocké en dehors du répertoire par défaut dojo-release-x.x.x \. Ajouter ce qui suit à votre commande: registerModulePath = tests ../myproject/Tests

Vous pourriez avoir à modifier ../ correctement pour localiser votre structure de répertoire réel.

+0

registerModulePath est maintenant obsolète, vous devriez maintenant utiliser quelque chose comme: paths = myutil, ../../mydirectory/myutil –

0

Il existe un correctif ici: http://bugs.dojotoolkit.org/ticket/10511 qui permet d'exécuter des tests de ligne de commande en dehors de la racine dojo, mais il ne semble pas avoir été appliqué, dans dojo-1.6.1, de toute façon.

0

Il est possible d'exécuter des tests DOH sur la ligne de commande, y compris des tests en dehors de l'arborescence des sources du dojo. Créez un fichier de configuration comme ceci dit où vos modules de code sont par rapport au dojo/util/emplacement doh:

require({ 
    paths: { 
     "org/myorg" : "../../../mycode/org/myorg", 
     "com/mycom" : "../../../x/com/mycom" 
    } 
}); 

et nommez-le Config.js. Ouvrez une fenêtre de commande et cd dans le répertoire contenant les répertoires "dijit", "dojo", "dojox" et "util". Exécutez cette commande:

java -jar util/shrinksafe/js.jar dojo/dojo.js baseUrl=file:///full/path/to/dojo/dojo load=file://full/path/to/config.js load=doh test=com/mycom/tests 

La réponse complète est ici: http://dojotoolkit.org/reference-guide/1.9/util/doh.html

Il y a une explication plus détaillée: http://www.artificialworlds.net/blog/2012/10/09/running-dojo-doh-unit-tests-on-the-command-line-with-rhino/

Questions connexes