J'ai un fichier Rake qui exécute quelques tâches. Je veux exécuter mes tests sur plusieurs navigateurs sans le coder en dur sur chaque test. Toute suggestion sera appréciée.Comment puis-je décider de mon navigateur (* firefox, * ie) à partir de la ligne de commande dans le fichier Rake?
Répondre
Je suppose que le meilleur moyen serait de parcourir le système de fichiers en fonction de votre système d'exploitation actuel et de trouver les exécutables des navigateurs que vous voulez. Peut-être que vous pouvez prendre le code Launchy et le faire faire ce que vous voulez? :)
http://copiousfreetime.rubyforge.org/launchy/
Launchy est classe d'aide pour le lancement d'applications multi-plateformes dans un incendie et d'oublier manière . Actuellement, seul le lancement d'un navigateur est pris en charge.
Launchy.open("http://www.ruby-lang.org/")
Sur OS X, cela fonctionne pour moi:
`open #{url}`
Avez-vous envisagé d'utiliser Watir? Il fournit une interface abstraite aux navigateurs pour les tests, y compris les interfaces avec Internet Explorer (par défaut), Firefox (firewatir), Chrome (ChromeWatir) et Safari (SafariWatir) - IE uniquement sur Windows (évidemment) et Safari uniquement sur OS X (I ' Je ne suis pas sûr, je ne pense pas qu'ils l'ont fait fonctionner avec Safari pour Windows).
Vous faites essentiellement une méthode ou une classe qui prend le navigateur et l'URI que vous voulez charger et les charge en utilisant les classes Watir pertinentes. Ensuite, vous créez des tâches Rake qui appellent la méthode appropriée. L'avantage de ceci est que vous n'avez pas besoin de savoir où se trouve Firefox et que vous l'appelez différemment s'il fonctionne ou pas. Je n'ai pas fait de Watir depuis un moment - je suis passé à Celerity/Culerity pour les tests de navigateur - mais même si vous ne l'utilisez pas pour tester, vous devriez pouvoir l'utiliser pour lancer des navigateurs de Ruby à travers au moins Windows et Mac, et peut-être aussi Linux.
@ss, Pour exécuter vos tests, vous pouvez ajouter une variable d'environnement à vos tests, quelque chose comme WATIR_BROWSER = "firewatir" et une instruction case dans votre code qui crée le navigateur correct en utilisant watir. Ensuite, ayez une tâche rake qui appelle votre tâche de test principale avec chacune des différentes variables. Vous obtiendriez plusieurs lectures de réussite/échec, mais au moins vous pourriez l'exécuter avec une tâche de rake. –
Alors, voulez-vous savoir comment ouvrir un navigateur spécifique dans ruby ou comment savoir quel navigateur est en cours d'exécution? –