Аварийное завершение работы скрипта RSpec / Watir - PullRequest
1 голос
/ 07 октября 2010

Я использую Ruby 1.8.6, Watir 1.6.6 и RSpec 1.3.0. Когда я запускаю следующий скрипт, он «завершается» (термин дан в EclipsePDT IDE), но ошибки не отображается. То же самое, когда я запускаю его из командной строки c в Windows, за исключением того, что нет «прекратить». Браузер никогда не открывается. Кто-нибудь понял? Он работает нормально, если я уберу описание, его и конец строки.

describe 'FaceBook' do
  before :all do
    @b = Watir::Browser.new
    @b = Watir::IE.start('http://www.facebook.com')
  end

  it 'Default Page links' do
    @b.link(:class, 'fbxWelcomeBoxName').text.should == 'Dave McNulla'
    @b.link(:href, 'http://www.facebook.com/?ref=home').text.should == 'Home'
    @b.link(:href, 'http://www.facebook.com/dave.mcnulla').text.should == 'Profile'
  end
  it 'Home Page links' do
    @b.link(:href, 'http://www.facebook.com/?ref=home').click
    @b.link(:href, 'http://www.facebook.com/?ref=home').text.should == 'Home'
    @b.link(:href, 'http://www.facebook.com/dave.mcnulla').text.should == 'Profile'
  end
  it 'Profile Page links' do
    @b.link(:text, 'Profile').click
    @b.link(:href, 'http://www.facebook.com/?ref=home').text.should == 'Home'
    @b.link(:href, 'http://www.facebook.com/dave.mcnulla').text.should == 'Profile'
  end

  after :all do
    @b.close
  end
end

Ответы [ 4 ]

1 голос
/ 10 октября 2010

Я наконец-то узнал, что тестовые сценарии RSpec запускаются из вызова 'spec' в командной строке, как в:

spec myBrowserTest.rb

Я предполагал, что запустил их, вызвав Ruby, как я это делал с файлами TestUnit.

Теперь мне нужно выяснить, как вызвать 'spec' из Eclipse PDT. Спасибо всем, кто внёс идеи. Я ценю это еще больше, потому что я плохо справился с изложением своей проблемы.

Dave

0 голосов
/ 07 октября 2010

Поможет ли это, если вы добавите это в блок before :all:

require "rubygems"
require "watir"

Ваш код открывает браузер на моей машине, когда мне требуются рубины и слова.

0 голосов
/ 08 октября 2010

Я добавил несколько операторов put, чтобы увидеть, какие части были запущены, а какие никогда не были получены:

require 'spec'

puts "before strting"
describe 'FaceBook' do
  require 'watir'
  require 'rubygems'

  puts "before all"
  before :all do
    puts "all"
    @b = Watir::Browser.start('http://www.facebook.com')
  end

  puts "before Default"
  it 'Default Page links' do
    puts "Default"
    @b.link(:class, 'fbxWelcomeBoxName').text.should == 'Dave McNulla'
    @b.link(:href, 'http://www.facebook.com/?ref=home').text.should == 'Home'
    @b.link(:href, 'http://www.facebook.com/dave.mcnulla').text.should == 'Profile'
  end
  puts "before Home"    
  it 'Home Page links' do
    puts "Home"
    @b.link(:href, 'http://www.facebook.com/?ref=home').click
    @b.link(:href, 'http://www.facebook.com/?ref=home').text.should == 'Home'
    @b.link(:href, 'http://www.facebook.com/dave.mcnulla').text.should == 'Profile'
  end
  puts "before Profile"
  it 'Profile Page links' do
    puts "Profile"
    @b.link(:text, 'Profile').click
    @b.link(:href, 'http://www.facebook.com/?ref=home').text.should == 'Home'
    @b.link(:href, 'http://www.facebook.com/dave.mcnulla').text.should == 'Profile'
  end
  puts "before after"    
  after :all do
    puts "All"
    @b.close
  end
end

Выход:

before strting
before all
before Default
before Home
before Profile
before after

Видимо, блоки для тестовых случаев не запущены.

0 голосов
/ 07 октября 2010

Одна проблема, которую я вижу, заключается в том, что вы открываете два браузера.Я бы заменил это:

@b = Watir::Browser.new
@b = Watir::IE.start('http://www.facebook.com')

на:

@b = Watir::Browser.start('http://www.facebook.com')
...