web-dev-qa-db-fra.com

Comment puis-je utiliser des arguments de ligne de commande dans Angularjs Protractor?

J'utilise Protractor pour effectuer des tests de bout en bout, et j'aimerais transmettre les informations de connexion via la ligne de commande au lieu de les stocker dans un fichier de spécifications. J'ai trouvé un message où quelqu'un a utilisé process.argv.forEach, mais comment puis-je stocker ces valeurs et les utiliser dans un autre fichier de spécifications? J'ai un fichier appelé login-spec.js où j'aimerais utiliser les arguments de la ligne de commande.

Merci!

52
Brendan

Dans le référence config cette section peut être intéressante:

  // The params object will be passed directly to the protractor instance,
  // and can be accessed from your test. It is an arbitrary object and can
  // contain anything you may need in your test.
  // This can be changed via the command line as:
  //   --params.login.user 'Joe'
  params: {
    login: {
      user: 'Jane',
      password: '1234'
    }
  },

Et vous pouvez accéder à l'objet params comme celui-ci dans votre code: browser.params.login.user

Donc, dans votre cas, si vous appelez un rapporteur comme celui-ci:

protractor ... --params.login.user=abc --params.login.password=123

Vous pouvez accéder à ces variables dans votre code comme ceci:

browser.params.login.user et browser.params.login.password

91
Lajos Veres