Der lokale Variablenwert des Moduls in einem .rb kann nicht in eine andere .rb-Datei konvertiert werden. Ich versuche, driverDetailsMap Variablenwert von setup.rb in Scriptrunner.rb Datei zu bekommen. Aber ich habe immer das Problem als undefinierte Methode `driverDetailsMap 'für Setup: Module (NoMethodError).So erhalten Sie eine lokale Variable zwischen dem Ruby-Skript
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 <<<<<<<<<<<<<<<<<<<<<<<<<<"
..................
Bitte im Voraus Hilfe ..
Warum brauchen Sie die lokale Variable? Was genau willst du testen? – Dbz
Außerdem befindet sich Ihr Code nicht in einem Test. Es gibt keine Beschreibung, keinen Zusammenhang oder Blockaden. Stellen Sie sicher, dass Sie Ihren Test ausgespült haben, bevor Sie erklären, dass er nicht funktioniert. Umfang ist wichtig. Uns ist es wichtig, zu verstehen, was Sie tatsächlich testen möchten - Tests sind Dokumentation, und Ihnen fehlt die Dokumentation! – Dbz
Ich möchte die Treiberinstanz von einem Ruby-Skript zu einem anderen Skript freigeben. Wenn es sich um lokale oder globale Variable handelt. – Thangaraj