Ich habe eine Rake-Datei, die einige Aufgaben ausführt. Ich möchte meine Tests auf mehreren Browsern laufen lassen, ohne sie für jeden Test hart zu kodieren. Jeder Vorschlag wäre großartig.
Antworten
Zu viele Anzeigen?Haben Sie die Verwendung von Watir in Betracht gezogen? Es bietet eine abstrakte Schnittstelle zu Browsern zum Testen, einschließlich Schnittstellen zu Internet Explorer (standardmäßig), Firefox (firewatir), Chrome (ChromeWatir) und Safari (SafariWatir) - IE nur unter Windows (offensichtlich) und Safari nur unter OS X (ich bin mir nicht sicher, ich glaube nicht, dass sie es mit Safari für Windows zum Laufen gebracht haben).
Im Grunde genommen erstellen Sie entweder eine Methode oder eine Klasse, die den Browser und den URI, den Sie laden möchten, aufnimmt und sie unter Verwendung der entsprechenden Watir-Klassen lädt. Dann erstellen Sie Rake-Aufgaben, die die entsprechende Methode aufrufen. Das hat den Vorteil, dass Sie nicht herausfinden müssen, wo Firefox ist, und ihn anders aufrufen, wenn er läuft oder nicht.
Ich habe seit einiger Zeit keine Watir-Sachen mehr gemacht - ich bin für Browsertests auf Celerity/Culerity umgestiegen - aber selbst wenn Sie es nicht zum Testen verwenden, sollten Sie in der Lage sein, es zum Starten von Browsern aus Ruby heraus zu verwenden, zumindest unter Windows und Mac und möglicherweise auch unter Linux.
Der beste Weg wäre wohl, das Dateisystem auf der Grundlage des aktuellen Betriebssystems zu durchsuchen und die ausführbaren Dateien der gewünschten Browser zu finden.
Vielleicht können Sie den Launchy-Code nehmen und machen es tun, was Sie wollen:)
http://copiousfreetime.rubyforge.org/launchy/
Launchy ist eine Hilfsklasse zum Starten von plattformübergreifenden Anwendungen in einem "fire and forget Weise. Derzeit wird nur der Start eines Browsers unterstützt.
Launchy.open("http://www.ruby-lang.org/")