0

我在过去一周创建了 66 个 watir 脚本,用于在客户网站上进行自动化测试。

然而,我最近发现了一个名为 MiniTest 的测试框架,我现在正在尝试实现它。

我将 URL 设置为变量的原因是因为这些测试需要在 5 个不同的站点上运行,所以当他们希望我在不同的网站上运行我的包时,我只需要更新该 1 个变量而不是每个人测试。

require 'minitest/autorun'
require "watir-webdriver"

class MPTEST < MiniTest::Unit::TestCase

def setup()
    url = "http://thewebsite.com/"
    $browser = Watir::Browser.new :chrome
    $browser.goto url
end

def test_myTestCase
    $browser.link(:text, "Submit your CV").click
    sleep(2)
    $browser.button(:value,"Submit").click
    assert($browser.label.text.includes?("This field is required"))

def teardown
    $browser.close
end

end

运行时,我收到以下输出:

NameError: undefined local variable or method 'browser' for #<MPTEST:0x4cc72f8>c:/directory stuff...

有任何想法吗?

编辑我有浏览器工作但是现在我的断言有问题:

新代码:

require 'minitest/autorun'
require "watir-webdriver"

class MPTEST < MiniTest::Unit::TestCase

def setup()
    url ="http://thewebsite.com"
    $browser = Watir::Browser.new :chrome
    $browser.goto url
end

def test_myTestCase
    $browser.link(:text, "Submit your CV").click
    sleep(2)
    $browser.button(:value,"Submit").click
    assert($browser.label.text.includes?("This field is required"))
end

def teardown
    $browser.close
end

end

错误是:

NoMEthodError: undefined method 'includes?' for "":String
4

2 回答 2

1

在我看来,您可以使用@browser代替$browser(但问题可能不在此代码中)

于 2013-10-31T11:29:33.980 回答
0

例外

NoMEthodError: undefined method 'includes?' for "":String

是由于字符串,在这种情况下返回的值$browser.label.text没有includes?方法。

你真正想要的方法是include?(没有复数):

assert($browser.label.text.include?("This field is required"))
于 2013-10-31T15:57:31.503 回答