2017-08-26 5 views
-1

Nous travaillons actuellement avec Ruby, Cucumber et Selenium pour effectuer nos tests d'intégration.Mise à niveau d'un ancien projet à capybara

En ce moment nous voulons améliorer la qualité de nos tests et donc nous voulons utiliser Capybara. Maintenant que toutes nos méthodes doivent être réécrites pour cela, nous avons pensé que quelqu'un l'avait déjà fait et avons écrit un wrapper pour le pilote web de sélénium, où Capybara fait le travail.

Par exemple:

L'emballage doit remplacer les éléments suivants:

driver.navigate_to "/home" 

à quelque chose comme

visit "/home" 

Le point est, nous ne voulons réécrire tout le code, puisque la fonctionnalité de ma vue est tout à fait la même chose et il ne devrait pas être si difficile d'écrire un wrapper pour le pilote, qui le fait automatiquement. Moyens: la méthode navigate_to appelle simplement une méthode de visite, et je suis heureux.

Dois-je écrire ceci tout seul ou est-ce que cela a déjà été fait?

Merci beaucoup!

+1

Je ne pense pas que cela existe, vous devriez réécrire vos méthodes. – MSathieu

Répondre

0

Non, il n'existe pas de wrapper pour cela. Vous semblez manquer le fait que Capybara est lui-même un emballage autour du sélénium-webdriver, vous demandez donc une enveloppe compatible avec le sélénium autour d'une enveloppe autour du sélénium. Ceci est couplé avec le fait que si tout ce que vous faites est d'émuler vos commandes de sélénium existantes avec des commandes Capybara vous ne gagnerez rien de Capybara, donc c'est inutile. Il semblerait que votre équipe ferait mieux de laisser les tests existants tels quels, en écrivant tous les nouveaux tests en utilisant Capybara, et comme les tests existants ont besoin de modifications/maintenance les réécrivant pour utiliser Capybara avec son API intégré d'attente/réessayer.

+0

Je l'ai déjà compris, mais ça ne change pas mon Problème que j'ai beaucoup de vieux tests que je ne veux pas réécrire. C'est, ce que j'ai déjà écrit, exactement le problème. Navigate_to et visit font la même chose, mais cette visite est meilleure. – MJohnyJ

+0

@MJohnyJ 'visiter' n'est pas mieux que' naviguer' en fait quand Capybara est utilisé avec Selenium, il se résume simplement à 'def visite (chemin) browser.navigate.to (chemin) end' Comme je l'ai dit dans ma réponse , ne pas réécrire les tests en cours jusqu'à ce qu'ils doivent être modifiés, et commencez simplement à écrire de nouveaux tests en utilisant Capybara. –

+0

La chose est, qu'ils doivent être changés. De nombreux tests échouent au hasard. Pour lutter contre ce comportement, dans le passé, nous avons ajouté des retards et beaucoup d'attente. Cela ralentit les tests et le test échoue toujours de manière aléatoire. Nous espérons résoudre ce problème avec Capybara mais puisque nous parlons de 2000 lignes de code, une autre solution doit être trouvée. – MJohnyJ