在Ruby测试单元中导入/读取参数

时间:2012-10-11 16:18:59

标签: ruby testing csv selenium webdriver

请在失去之前帮助我!

我正在使用Ruby Test Unit和Selenium Webdriver。我的所有测试都以登录功能开始,因此我希望测试从中央脚本/ csv / text文件中提取用户名和密码值,这是最简单的。这样可以更轻松地从一个位置控制登录详细信息,而不是将其硬编码到每个脚本中。我不是Ruby程序员,因此我发现这并不容易。我想我应该能够在'def setup'部分声明用户名和密码参数,以便它从外部源读取值。

这可能吗?

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


   class CMSNewslist < Test::Unit::TestCase

      def setup
       @driver = Selenium::WebDriver.for :firefox
       @base_url = "http://skyintranet/"
       @driver.manage.timeouts.implicit_wait = 90
       @verification_errors = []
      end

      def teardown
       @driver.quit
       assert_equal [], @verification_errors
      end


      def test_c_m_s_newslist
       @driver.get(@base_url + "/Enterprise-Applications-Test/")
       @driver.find_element(:link, "Login").click
       @driver.find_element(:id,     "ctl00_MainRegion_LoginView_LoginControl_UserName").clear
@driver.find_element(:id, "ctl00_MainRegion_LoginView_LoginControl_UserName").send_keys  "Ruband"
@driver.find_element(:id, "ctl00_MainRegion_LoginView_LoginControl_Password").clear
@driver.find_element(:id, "ctl00_MainRegion_LoginView_LoginControl_Password").send_keys  "Donn1982"
@driver.find_element(:id, "ctl00_MainRegion_LoginView_LoginControl_LoginBtn").click
assert_equal "Logout", @driver.find_element(:class, "loginButton").text, "Login Unsuccessful"
puts "Login Successful"

非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以将它们放在一个单独的文件中,然后阅读它或者让每个脚本都包含一个mixin。

module LoginConfig
    @@username = 'foo'
    @@password = 'bar'
end

然后在你的班级CMSNewslist:

...
require 'login_config'

class CMSNewslist < Test::Unit::TestCase
    include LoginConfig
...

然后您可以使用@@ username和@@密码。这是一个关于Mixins的体面教程...... http://www.tutorialspoint.com/ruby/ruby_modules.htm