web-dev-qa-db-fra.com

Puis-je créer des étapes de test réutilisables dans nightwatch.js?

Je cherche à créer des composants réutilisables dans mes tests nightwatch.js.

c'est à dire. connexion à l'application Web, déconnexion de l'application Web

Quelle est la meilleure méthode/modèle pour créer ces étapes de manière réutilisable?

15
chrisphilton

Vous pouvez créer des commandes personnalisées pour cela: http://nightwatchjs.org/guide#writing-custom-commands

  1. dans nightwatch.json, spécifiez le chemin d'accès au dossier qui contiendra votre fichier de commandes personnalisé.
  2. créez un fichier js et nommez-le comme votre commande personnalisée doit être un nom (par exemple, login.js)
  3. écrivez le code dont vous avez besoin:
exports.command = function(username, password) {
    
    this
        .waitForElementVisible('#password', 4000)
        .setValue('#password', password)
        .waitForElementVisible('#username', 1000)
        .setValue('#username', username)
        .waitForElementVisible('#sign_in', 1000)
        .click('#sign_in')
        .waitForElementVisible('h1.folder-title', 10000)
        
        return this;
};
  1. utilisez la commande personnalisée dans votre test:
.login("your_username", "your_password")
24
Corrinna Rainwater

Cela se fait généralement avec des objets de page. http://nightwatchjs.org/guide#page-objects

Ensuite, vous pouvez juste

var myPage = client.page.myPage();

myPage.navigate()
  .assert.title('MyPage')
  .login('foo', 'bar)
  .assert.displayName('foo');
2
Jkarttunen

Pour ajouter à la réponse précédente, vous pouvez également créer des assertions personnalisées et des rapporteurs en plus des commandes.

Le Nightwatch Guide contient plus d'informations sur la personnalisation et l'extension de Nightwatch.

0
anthonyjruffa