2014-03-24 66 views
2

醬汁實驗室有一個特定的:passed選項,可用於報告測試的通過/失敗狀態 - (https://saucelabs.com/docs/additional-config)。Ruby Selenium Webdriver - 配置醬汁實驗室通過/失敗

我似乎無法包裝我的頭如何在Ruby中完成此任務。

我試着在我類,它是用來作爲的:passed的醬實驗室測試值的佔位符創建一個全局變量($status)。然後在拆卸將佔位符更新爲適當的值。

在這個例子中,測試將永遠在我

在我設置恢復爲Fail

caps[:passed] = $status 
拆解
def success 
    $status = true 
end 

def error 
    $status = false 
end 

我假設caps[:passed] = $status期間設置設置並且不能更改。

我不知道如何在作業完成後更新:passed狀態。

+0

我也嘗試在我的**拆解**中簡單地添加'caps [:passed] = true',但它會被忽略。 – YoDK

回答

0

我能夠通過使用sauce_whisk寶石(https://github.com/saucelabs/sauce_whisk

「SauceWhisk提供了一個‘爲醬實驗室的RESTful API的ActiveRecord’風格的客戶端來實現這一點。如果你不使用醬油寶石,你想要一個很好的方式來與我們的API交互,試試這個。「

driver設置檢索SauceLabs作業ID - 拆卸過程中像@job_id = @driver.instance_variable_get("@bridge").instance_variable_get("@session_id")

那麼我可以用SauceWhisk::Jobs.pass_job @job_idSauceWhisk::Jobs.fail_job @job_id設置作業的狀態。

0

直接來自Sauce Labs found here的示例。

require 'rubygems' 
require "test/unit" 
require 'selenium-webdriver' 

class ExampleTest < Test::Unit::TestCase 
    def setup 
     caps = Selenium::WebDriver::Remote::Capabilities.firefox 
     caps.version = "5" 
     caps.platform = :XP 
     caps[:name] = "Testing Selenium 2 with Ruby on Sauce" 

     @driver = Selenium::WebDriver.for(
      :remote, 
      :url => "http://username-string:[email protected]:80/wd/hub", 
      :desired_capabilities => caps) 
    end 

    def test_sauce 
     @driver.navigate.to "http://saucelabs.com/test/guinea-pig" 
     assert @driver.title.include?("I am a page title - Sauce Labs") 
    end 

    def teardown 
     @driver.quit 
    end 
end 
+0

噢抱歉@sircapsalot我應該更清楚。在Sauce Labs中有一個特定的':passed'選項,但我找不到如何使用它的明確例子(在Ruby中)。 感謝您的幫助。 – YoDK

相關問題