Question

Est-il possible d'utiliser "Dojo / Text!" Dans un test fonctionnel de stagiaire?

Je peux configurer ma page de test sous forme de chaîne JSON, mais idéalement, j'aimerais externaliser la chaîne dans un fichier pour faciliter l'édition.Je ne fais que commencer avec Intern pour le moment, donc j'expérimente simplement ce qui est possible, mais voici le début de mon code de test).

Cela fonctionne avec la variable commentée "testData" utilisée, mais échoue actuellement lorsque j'essaie de fournir la même chaîne par le dojo/text !déclaration.

Code:

define([
    'intern!object',
    'intern/chai!assert',
    'dojo/text!./firstTestPageConfig.json',
    'require'
], function (registerSuite, assert, PageConfig, require) {
    registerSuite({
        name: 'firstTest',

        'greeting form': function () {

            var testData = PageConfig;
            // var testData = '{"widgets":[{"name":"alfresco/menus/AlfMenuBar","config":{"widgets":[{"name":"alfresco/menus/AlfMenuBarPopup","config":{"id":"DD1","label":"Drop-Down","iconClass":"alf-configure-icon","widgets":[{"name":"alfresco/menus/AlfMenuGroup","config":{"label":"Group 1","widgets":[{"name":"alfresco/menus/AlfMenuItem","config":{"label":"Item 1","iconClass":"alf-user-icon"}},{"name":"alfresco/menus/AlfMenuItem","config":{"label":"Item 2","iconClass":"alf-password-icon"}}]}},{"name":"alfresco/menus/AlfMenuGroup","config":{"label":"Group 2","widgets":[{"name":"alfresco/menus/AlfMenuItem","config":{"label":"Item 3","iconClass":"alf-help-icon"}}]}}]}}]}}]}';
            var testPage = 'http://localhost:8081/share/page/tp/ws/unittest?testdata=';

            return this.remote
                .get(testPage + testData)
                .waitForElementByCssSelector('.alfresco-core-Page.allWidgetsProcessed', 5000)
                .elementById('DD1')
                    .clickElement()
                    .end()

       }
   });
});

L'erreur que j'obtiens est la suivante :

/home/dave/ScratchPad/ShareInternTests/node_modules/intern/node_modules/dojo/dojo.js:742
                throw new Error('Failed to load module ' + module.mid + ' from ' + url + 
                          ^
Error: Failed to load module dojo/text from /home/dave/ScratchPad/ShareInternTests/dojo/text.js (parent: dojo/text!17!*)
at /home/dave/ScratchPad/ShareInternTests/node_modules/intern/node_modules/dojo/dojo.js:742:12
at fs.js:207:20
at Object.oncomplete (fs.js:107:15)

J'ai essayé de jouer avec la configuration du chargeur/paquet/carte mais sans succès.Il n'est pas clair (du moins pour moi) d'après le message d'erreur s'il ne trouve pas le fichier que je transmets au dojo/texte (mais j'ai essayé les chemins complets et relatifs) ou le module Dojo lui-même ?

Je voudrais juste confirmer que ce que j'essaie est possible, avant de passer plus de temps avec ça...mais évidemment toute solution ou exemple serait grandement apprécié !!

Merci beaucoup, Dave

Était-ce utile?

La solution

À votre erreur spécifique :Vous devez installer Dojo pour votre propre projet si vous souhaitez l'utiliser.Vous essayez de charger un module qui n'existe pas.Vous pouvez également essayer d'utiliser la copie fournie avec Intern, en chargeant des modules depuis intern/dojo, mais cela n'est pas recommandé si vous ne comprenez pas les mises en garde potentielles liées au chargement de cette bibliothèque interne.

Pour utiliser dojo/text dans un test fonctionnel, généralement :Cela n'est actuellement possible que si vous utilisez la branche Geezer ou si vous utilisez explicitement le chargeur Dojo 1, car ce module repose sur des fonctionnalités qui ne sont exposées que par le chargeur Dojo 1 lors de son exécution dans Node.js.Un autre module de chargement de texte entièrement générique fonctionnerait, ou vous pourriez charger intern/dojo/node!fs et chargez le texte vous-même.Ce problème sera abordé à l'avenir.

Autres conseils

Je viens de trouver le même problème et pour moi cela a fonctionné:

define([
     "dojo/_base/declare",
     "intern/dojo/text!/[PathToText]"
], function (declare, base) {

semble comme si SitePen a inclus cela dans l'intervalle ...

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