Невозможно получить локальное значение переменной модуля в одном .rb в другой файл .rb. Я пытаюсь получить значение переменной driverDetailsMap из файла setup.rb в файле Scriptrunner.rb. Но я всегда получал проблему как неопределенный метод `driverDetailsMap 'для Setup: Module (NoMethodError).Как получить локальную переменную между ruby script
setup.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 <<<<<<<<<<<<<<<<<<<<<<<<<<"
..................
Пожалуйста, помогите заранее ..
Зачем вам нужна локальная переменная? Что именно вы хотите проверить? – Dbz
Кроме того, ваш код не находится в рамках теста. Нет описания, контекста и блоков. Удостоверьтесь, что ваш тест вымыли, прежде чем объявить, что он не работает. Сфера важна. Наше понимание того, что вы на самом деле пытаетесь проверить, тоже важно - тесты - это документация, и вам не хватает документации! – Dbz
Я хочу поделиться экземпляром драйвера с одного скрипта ruby на другой скрипт. Если это может быть локальная или глобальная переменная. – Thangaraj