0

クライアントの Web サイトでのテストを自動化するために、この 1 週間で作成した 66 個の watir スクリプトがあります。

しかし、最近実装しようとしている MiniTest というテスト フレームワークについて知りました。

URL を変数として設定した理由は、これらのテストを実行する必要がある 5 つの異なるサイトがあるためです。別の Web サイトでパックを実行する必要がある場合は、個々の変数ではなく、その 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 に答える