Что мне нужно в основном отправить целевой аргумент и использовать его в моих тестах RSpec, например:как делиться переменной rake в вызываемом ею коде?
$ rake unistall_and_run[test_spec.rb]
Rakefile:
desc 'uninstall app to run tests'
task :uninstall_and_run, [:arg] do |t, arg|
#note this, i will explain later
start_driver(fullReset: true)
oi = arg.to_s.split('"')[1]
file_dir = (project_home + '/spec/' + oi)
exec "rspeC#{file_dir}"
end
start_driver
называется на этой линии, но когда я запускаю тесты (exec "rspec ..."
), он вызывается снова, и аргументы, которые я передал, перезаписываются по умолчанию (потому что он находится в конфигурации RSpec).
Что бы я хотел сделать, в моем файле RSpec проверьте, было ли это уже вызвано и не запускается снова.
Вот метод start_driver:
def start_driver(options= {}) if options.empty? capabilities = caps else capabilities = caps(options) end $appium = Appium::Driver.new(caps: capabilities) $browser = $appium.start_driver Appium.promote_appium_methods RSpec::Core::ExampleGroup end
Я надеваю «Не понимаю», что аргументы, которые я передал, перезаписываются по умолчанию ». 'start_driver' не использует' arg'. Вы пытаетесь не запускать 'start_driver', когда он вызывается где-то еще, когда вы запускаете rspec, или пытаетесь передать' arg' в нечто, вызванное rspec? –
Я создал этот метод для получения аргументов: 'def start_driver (options = {}) if options.empty? возможности = колпачки еще Возможности = колпачков (опции) конец $ appium = Appium :: Driver.new (колпачки: возможности) $ браузер = $ appium.start_driver Appium.promote_appium_methods RSpec :: Основной :: ExampleGroup end' – juhlila