2017-01-21 4 views
1

Je suis en mesure de définir des paramètres dans le fichier conf. mais quand je cours & essayez de surcharger sur l'exécution cela ne fonctionne pas. c'est la connexion avec le nom d'utilisateur que j'ai mentionné dans le fichier de conf.impossible de remplacer les arguments de ligne de commande dans Angularjs Protractor lors de l'exécution de suites avec gulp

ma config Fichier-

var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter'); 
var log4js = require('log4js'); 
exports.config = { 
    seleniumAddress: 'http://localhost:4444/wd/hub', 
    allScriptsTimeout: 10*60*1000, 
    framework: 'jasmine2', 

    onPrepare: function() 

    browser.manage().timeouts().implicitlyWait(11000); 
    var width = 768; 
    var height = 1366; 
    browser.driver.manage().window().setSize(768, 1366); 
    //browser.ignoreSynchronization = true 

    jasmine.getEnv().addReporter(
     new Jasmine2HtmlReporter({ 
     savePath: __dirname+'/qualityreports/testresults/e2e', 
     takeScreenshots: false, 
     filePrefix: 'automationReport', 
     consolidate: true, 
     cleanDestination: false, 
     consolidateAll: true 

     }) 
    ); 
    }, 

    suites:{ 
    suiteone:['./test/e2e/login/**/*Spec.js', 
     './test/e2e/main/**/mainSpec.js'] 
    }, 
    capabilities: { 
    'browserName': 'chrome', 
    'chromeOptions': { 
     'args': [] 
    } 
    }, 

    appenders: [ 
    { 
     "type": "file", 
     "filename": "./e2eTestLogs/logfile.log", 
     "maxLogSize": 20480, 
     "backups": 3, 
     "category": "relative-logger" 
    } 
    ], 

    resultJsonOutputFile:'./results.txt', 

    params: { 
    Login: { 
     username: 'xyz', 
     password: 'xyz' 
    } 
    }, 

    // Options to be passed to Jasmine-node. 
    jasmineNodeOpts: { 
    showColors: true, 
    defaultTimeoutInterval: 40*60*1000 
    } 
}; 

commande I utilisé:

gulp e2e-test --suite suiteone --params.Login.username=abc --params.Login.password=abc 

Quelqu'un pourrait-il s'il vous plaît aider. Je veux comprendre où je me trompe en passant l'argument de la ligne de commande.

+0

Je pense que cela fonctionnerait si vous n'utilisiez pas gulp puisque vous utilisez gulp vous devez utiliser argv pour gérer ces arguments de ligne de commande et les passer dans votre tâche de rapporteur. – sonhu

+0

Ce que j'ai déjà gérer via yargs. voici mon fichier de gulp ressemble. S'il vous plaît jeter un coup d'oeil et laissez-moi savoir si quelque chose ne va pas je fais. – tyaga001

+0

var gulp = require ('gulp'); var gulpProtracteur = require ('gulp-angular-protractor'); var args = require ('yargs'). Argv; gulp.task ('e2e-test', [ 'transpile'], la fonction (rappel) { gulp.src (paths.tests) .pipe ((gulpProtractor ({ ConfigFile: « protractor.conf.js ' args: [ '--suite', args.suite ], })) le (. 'erreur', function (e) { console.log (e); }) sur (.' end ', callback)); }); – tyaga001

Répondre

0

valeurs Essayez de passage en citant

--params.Login.username="abc" 
+0

Essayé avec des guillemets doubles et simples ainsi mais même il n'a pas écrasé. – tyaga001

0

Essayez celui

--params.Login.username "abc" 

Il est décrit dans le documentation de Protractor.