Sauce Labs有一个特定的:passed
选项,可用于报告测试的通过/失败状态 - (https://saucelabs.com/docs/additional-config)。
我似乎无法理解如何在Ruby中实现这一目标。
我尝试在类中创建一个全局变量($status
),该变量用作Sauce Labs测试:passed
值的占位符。然后在拆解期间将占位符更新为适当的值。
在此示例中,测试将始终返回Fail
在我的类
中$status = false
在我的设置
中caps[:passed] = $status
在拆解
中def success
$status = true
end
def error
$status = false
end
我假设设置期间caps[:passed] = $status
设置且无法更改。
我不知道如何在作业完成后更新:passed
状态。
答案 0 :(得分: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:access-key-string@ondemand.saucelabs.com: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
答案 1 :(得分:0)
我可以使用sauce_whisk
gem(https://github.com/saucelabs/sauce_whisk)
&#34; SauceWhisk提供了一个&#34; ActiveRecord&#34; Sauce Labs RESTful API的样式客户端。如果您没有使用Sauce Gem,并且想要一种很好的方式与我们的API进行交互,请尝试一下。&#34;
在driver
设置期间检索 SauceLabs作业ID - 类似于@job_id = @driver.instance_variable_get("@bridge").instance_variable_get("@session_id")
然后在拆解期间,我可以使用SauceWhisk::Jobs.pass_job @job_id
或SauceWhisk::Jobs.fail_job @job_id
来设置作业的状态。