2009-07-06 10 views
1

Ich versuche, die Umgebung für Tests mit Selen und Selen-Client gem. Ich bevorzuge Unit-Test-Stil über RSpec Stil der Tests.Selen Ruby Reporting

Muss ich mein eigenes System für das Reporting erstellen?

Wie kann ich die Ausnahmebehandlung hinzufügen, ohne in jedem Test das Start-Rescue-Ende zu haben? Gibt es eine Möglichkeit, das mit Mixins zu tun?

Antwort

0

Ich bin mir nicht sicher, ob ich verstehe, was Ihre Frage in Bezug auf die Berichterstattung bedeutet, aber das Selen-Client-Juwel behandelt sowohl BDD als auch UnitTesting.

Im Folgenden finden Sie Code aus der RubyForge Seite kopiert:

require "test/unit" 
require "rubygems" 
gem "selenium-client", ">=1.2.16" 
require "selenium/client" 

class ExampleTest < Test::Unit::TestCase 
    attr_reader :browser 

    def setup 
    @browser = Selenium::Client::Driver.new \ 
     :host => "localhost", 
     :port => 4444, 
     :browser => "*firefox", 
     :url => "http://www.google.com", 
     :timeout_in_second => 60 

    browser.start_new_browser_session 
    end 

    def teardown 
    browser.close_current_browser_session 
    end 

    def test_page_search 
      browser.open "/" 
      assert_equal "Google", browser.title 
      browser.type "q", "Selenium seleniumhq" 
      browser.click "btnG", :wait_for => :page 
      assert_equal "Selenium seleniumhq - Google Search", browser.title 
      assert_equal "Selenium seleniumhq", browser.field("q") 
      assert browser.text?("seleniumhq.org") 
      assert browser.element?("link=Cached") 
    end 

end 

Wie für die Ausnahmebehandlung, Unittesting behandelt die Ausnahmen mit einer Fehlermeldung.

Davon abgesehen, habe ich Ihre Frage vielleicht missverstanden.

+0

Nun, wie für die Berichterstattung, ich Selen-like-Bericht will (siehe hier: http://labs.fusionlink.com/katapult/images/Image/cfeclipse/pic21.jpg) Aber wenn das mit Selen-Client-Gem nicht möglich ist, möchte ich meine eigenen erstellen, und ich möchte es auch mit einigen Dingen erweitern (Screenshots von Seiten, die zum Beispiel Fehler enthalten). Um das zu tun, muss ich Ausnahmen abfangen. Ich kann das mit "rettung" tun, aber das würde bedeuten, dass jeder meiner Tests eine rettungsende-Anweisung haben sollte, und das ist ärgerlich. Gibt es einen anderen Weg, das zu tun? – zorglub76

+0

Könnte sein, dass Sie die begin..rescue mit einer Rendite abstrahieren könnten? Auf diese Weise würden Sie nur einen abstrahierten Ausnahmeblock benötigen. –

0

Der erste Build von Extent ist für Ruby verfügbar. Sie können das Beispiel here anzeigen. Neueste Quelle ist verfügbar unter github.

Beispielcode:

# main extent instance 
extent = RelevantCodes::ExtentReports.new('extent_ruby.html') 

# extent-test 
extent_test = extent.start_test('First', 'description string') 

# logs 
extent_test.log(:pass, 'step', 'details') 
extent.end_test(extent_test) 

# flush to write everything to html file 
extent.flush