2010-10-07 71 views
1

我正在使用Ruby 1.8.6,Watir 1.6.6和RSpec 1.3.0。當我運行以下腳本時,它會「終止」(在EclipsePDT IDE中給出的術語),但未列出任何錯誤。當我從Windows上的c-prompt運行它時,除非沒有「終止」。瀏覽器從不打開。任何人都有線索?如果我取消描述,它和結束語,它會運行正常。運行RSpec/Watir腳本的異常終止

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 
+0

請格式化代碼,它是不可讀這樣:) – 2010-10-07 08:24:35

+0

我不知道是什麼問題。瀏覽器從不打開?我不明白'terminate'的問題。 – 2010-10-07 08:31:09

+0

是的,瀏覽器從不打開。 :( 我添加了一些'puts'來看看什麼運行了什麼沒有運行
2010-10-08 13:29:24

回答

1

我終於找到了與調用「規範」在命令行上爲在RSpec的測試腳本運行:

規範myBrowserTest.rb

我曾以爲,我致電他們跑Ruby,就像我在TestUnit文件中完成的一樣。

現在我需要弄清楚如何從Eclipse PDT中調用'spec'。感謝大家帶來的想法。我更加欣賞這一點,因爲我首先表現出我的問題做得不好。

戴夫

+0

我忘了說你必須打電話給我腳本與'spec'而不是'ruby'。:) – 2010-10-11 08:42:18

0

我看到的一個問題是您打開兩個瀏覽器。我將取代這個:

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

有:

require "rubygems" 
require "watir" 

你的代碼,打開瀏覽器,在當我需要我的機器:

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

謝謝,如果我只能打開一個瀏覽器!( – 2010-10-08 13:38:05

0

請問如果您添加到before :all塊它幫助rubygems和watir。

0

我加了一些看跌語句,看看哪些部分正在運行哪些部分從未在抵達:

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 

顯然,對於測試用例塊沒有運行。