运行RSpec / Watir脚本的异常终止

时间:2010-10-07 05:34:56

标签: ruby rspec watir

我使用的是Ruby 1.8.6,Watir 1.6.6和RSpec 1.3.0。当我运行以下脚本时,它“终止”(在EclipsePDT IDE中给出的术语)但没有列出错误。当我从Windows上的c-prompt运行它时,相同,除了没有“终止”。浏览器永远不会打开。有人知道吗?如果我取消描述,它和结束行,它运行正常。

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 个答案:

答案 0 :(得分:1)

我终于发现RSpec测试脚本在命令行上调用'spec'运行,如:

  

spec myBrowserTest.rb

我假设我通过调用Ruby来运行它们,就像我在TestUnit文件上所做的那样。

现在我需要弄清楚如何从Eclipse PDT中调用'spec'。感谢每个带来创意的人。我更加欣赏它,因为我首先提出了我的问题。

戴夫

答案 1 :(得分:0)

我看到的一个问题是你打开了两个浏览器。我会替换它:

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

使用:

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

答案 2 :(得分:0)

如果将其添加到before :all块:

,是否有帮助
require "rubygems"
require "watir"

当我需要rubygems和watir时,您的代码会在我的机器上打开浏览器。

答案 3 :(得分:0)

我添加了一些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

显然,测试用例的块没有运行。