【发布时间】:2017-01-19 09:23:30
【问题描述】:
无法将一个 .rb 中的模块的局部变量值获取到另一个 .rb 文件中。我试图从 setup.rb 获取 driverDetailsMap 变量值到 Scriptrunner.rb 文件中。但是我总是遇到问题,因为 Setup:Module (NoMethodError) 的未定义方法“driverDetailsMap”。
设置.rb
require "selenium-webdriver"
require "rspec"
require 'spreadsheet'
module Setup
if ENV["RAKE_CALL"] == "true"
$driverDetailsMap = Hash.new
inputMap = Hash.new
workbook = Spreadsheet.open 'src/config/Config.xls'
deviceConfigSheet = workbook.worksheet 'DeviceConfig'
totalColumnCount = deviceConfigSheet.column_count
startingColumn = 1
while startingColumn <= totalColumnCount-1
deviceConfigSheet.each do |row|
inputMap[row[0]] = row[startingColumn]
end
if inputMap.[]('PLATFORM_NAME') == 'Web-Firefox'
driver = Selenium::WebDriver.for :firefox
base_url = inputMap.[]('DRIVER_URL')
accept_next_alert = true
driver.manage.timeouts.implicit_wait = 30
driver.manage.window.maximize
driver.get(base_url + "/")
end
driverDetailsMap[inputMap.[]('DEVICE_IDENTIFIER')] = driver
startingColumn += 1
end
end
end
ScriptRunner.rb
require "rspec"
require 'spreadsheet'
#require 'setup'
require File.dirname(__FILE__) + '/setup.rb'
#include Setup
puts Setup::driverDetailsMap
puts "TESTING <<<<<<<<<<<<<<<<<<<<<<<<<<"
..................
请提前帮忙..
【问题讨论】:
-
为什么需要局部变量?你到底想测试什么?
-
另外,您的代码不在测试中。没有描述,上下文,也没有阻塞。在宣布它不工作之前,请确保您已将您的测试冲掉。范围很重要。我们了解您实际尝试测试的内容也很重要 - 测试是文档,而您缺少文档!
-
我想将驱动程序实例从一个 ruby 脚本共享到另一个脚本。如果是可能是局部或全局变量。