J'ai essayé d'utiliser CasperJS pour les tests de navigateur sans tête en utilisant PhantomJS et je voulais avoir un fichier de configuration ou quelque chose pour changer l'URL du site Web, les mots de passe de l'utilisateur etc. Donc finalement j'ai trouvé NuclearJS. Connaissez-vous un autre moyen parfait de faire cela? Si je voulais en écrire un, j'aimerais aussi le savoir.Tests frontaux sans navigateur avec CasperJS et fichiers de configuration?
Répondre
J'ai une solution (pas parfaite;)) qui utilise plusieurs fichiers de configuration (pour sélecteur, exécution, bureau, mobile, etc.).
J'inclus un dans l'exécution de mes casperjs teste un fichier qui m'offre toutes les configs dont j'ai besoin (j'y inclus aussi des fonctions globales). laisse deviner l'exécution du test ressemble que:
casperjs test --includes=loadGlobals.js test_1.js
Dans cet exemple le loadGlobals.js contient des fonctions telles que:
var fs = require('fs');
var config = {},
configFile = fs.read('config.json');
config = JSON.parse(configFile);
probalby le config.json est à la recherche comme ça:
{
"url": "http://www.yourTestUrl.com",
"variable_1": "bla",
"variable_2": "blub",
"nextTier": {
"variable_1": "blablub"
}
}
Maintenant vous pouvez appeler dans le test_1.js les variables du fichier config.json:
casper.start(config.url, function() {
casper.then(function() {
casper.echo(config.variable_1);
casper.echo(config.variable_2);
casper.echo(config.nextTier.variable_1);
});
})
casper.run();
Vous pouvez utiliser ces différents fichiers de configuration, même pour les remplacer lors des tests si nécessaire.
Les tests doivent être écrits dans le style de modèle d'objet de page afin qu'ils soient très maintable, en particulier avec une configuration externalisée. Je ne connaissais pas NuclearJS, mais je vais aussi y jeter un coup d'œil.
Il indique qu'il n'a pas pu trouver de configuration variable. – Shamendra
Avez-vous inclus loadGlobals.js dans l'exécution du test comme --includes = loadGlobals.js? – dasmelch
Oui, j'ai inclus que comme vous l'avez mentionné – Shamendra