Текущият ми проблем възниква само при изпълнение на тест от командния ред. Когато стартирам скрипта от RubyMine, нямам проблеми, от командния ред изглежда така
характеристики на краставицата / регресия / createCloudUser.feature -r функции / стъпка_дефиниции / -r lib /
Екзекуция:
Feature: User pages Creation
Add user to system
Background: # features/regression/createUser.feature:4
Given you are in Cloud Staging # features/step_definitions/is_given_steps.rb:5
undefined method `visit_page" for #<Object:0x007fe29cb4c798> (NoMethodError)
./features/step_definitions/old_pages.rb:10:in `/^you are accessing User Page$/"
сочи към следната страница:
#is_given_steps.rb
When(/^you are accessing User Page$/) do
defined? $base_url
#pry
visit_page CreateCustomerPage #Error is on this line unsure why?
end
Ето класа:
require "fig_newton"
require "page-object"
class CreateCustomerPage
include PageObject
include DataMagic
page_url "https://#{FigNewton.site_url}/admin/users/new"
text_field(:first_name, :id => "user_first_name")
text_field(:last_name, :id => "user_last_name")
text_field(:user_email, :id => "user_email")
button(:create_customer, :name => "commit")
button(:cancel, :name => "button")
def customerIsCreated
raise "User Not Created" unless browser.text.include?("#{FigNewton.customer_created.to_s.strip}")
return true
end
def customerIsNotCreated
raise "User was Created" unless browser.text.include?("#{FigNewton.customer_no_created.to_s.strip}")
return true
end
def complete_user_creation (data = { })
populate_page_with data_for(:create_user, data)
create_customer
end
end
проектът се създава, както следва:
TestProj-|
|--Config
|--Feature
|--Regression
|-- *.features
|--step_definitions
|-- is_given_steps.rb
|--support
|-- env.rb
|--lib
|---pages
|--Common
|--IS
|--*.* (other files)
|-- CreateCustomerPage.rb
добавен env.rb
#env.rb
#ADDED THIS AS TEST
$: << File.dirname(__FILE__)+"/../../lib"
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "../../", "lib"))
require "rspec-expectations"
require "page-object"
require "selenium-webdriver"
require "fig_newton"
require "data_magic"
require "require_all"
require "time"
require "date"
require "yaml"
require "fileutils"
require "aws-sdk"
require_all "lib"
$base_url = FigNewton.sys_url #used to parse a separate Url
World(PageObject::PageFactory)
Не съм сигурен защо visit_page би довел до грешка на тази страница. Когато изпълнявам от Rubymine, нямам проблем и тестът работи успешно. Моля помогнете.
Отговори:
2 за отговор № 1Тъй като ръчно изисквате папки, предполагам, че не се нуждаете от папката, която включва env.rb
.
Като се има предвид настройката на проекта, бих предположил, че env.rb
е в support
папка. Трябва да включите изискване за това в командата си Краставица - т.е. -r features/support
:
cucumber features/regression/createCloudUser.feature -r features/step_definitions/ -r lib/ -r features/support
0 за отговор № 2
Тази грешка
недефиниран метод `visit_page" за # (NoMethodError)
означава, че не сте инициализирали страницата, където живее visit_page. Може да се наложи или ако правите POM, трябва да направите нещо подобно, където и да живее тази стъпка:
Given $/You are in Cloud Staging$/ do
@page = SomePage.new(@test_env) // initialize new object where method lives
@page.visit_page
end