5

WebUIのテストを自動化するためにRubyでテストスイートをセットアップしようとしています(Watirを使用)

個々のテストは問題なく、すべて正しく実行されますが、スイートに問題があります。

たとえば、私のテストの1つが(BaseTestClassがTest :: Unit :: TestCaseを拡張する場合)

class Test3_1_3_1_2 < BaseTestClass
  def testHeightOfMainPanel
    assert(false, 'Not implemented')
  end
end

RunAllTestsスクリプトで、次のことを実行しようとしています

require 'test/unit'

Test::Unit.at_start do
  #Lets create our own user for these tests
  createCCUser(User, Password)
end

Test::Unit.at_exit do
  #Delete our own user
  deleteUser(User)
end


Dir["./**/Test*.rb"].each{|s|
  puts s.to_s
  load s
}

つまり、基本的に私がやりたいのは、テストの開始時に新しいユーザーを作成し、テストを実行してから、ユーザーを削除することです。これが必要なのは、システムがシングルサインオン(ちょっと)であり、全員に同じユーザーを使用した場合、テストが正しく実行される保証はありません(つまり、他の誰かが同時にテストを実行してから、最初のユーザーは追い出されます)

私が得ているエラーは次のとおりです:undefined method at_start' and private methodat_exit'called

私は何か間違ったことをしていることは知っていますが、Rubyに非常に慣れていないため、どこにいるのかわかりません。基本的に私が必要としているのは、いくつかのセットアップを実行して、見つかったすべてのテストを実行してから、クリーンアップを実行する方法です。各テストには、独自のセットアップ方法と分解方法があります

私も追加する必要があります、私は上記と同じものの多くのバリエーションを試しました、例えば

require 'test/unit'

class Temp < Test::Unit::TestCase
  Test::Unit.at_exit do
    #Delete our own user
    deleteUser(User)
  end


  Test::Unit.at_start do
    #Lets create our own user for these tests
    createCCUser(User, Password)
  end

  Dir["./**/Test*.rb"].each { |s|
    puts s.to_s
    load s
  }
end

そして、私はまだそれを取得していません。どんな助けでもいただければ幸いです

4

1 に答える 1

5

問題は、Ruby 1.9.3 を使用していると仮定すると、どの gem が で必要とされているかについて混乱していることだと思いますrequire 'test/unit'

Ruby 1.9.3 ではrequire 'test/unit'、"Minitest" gem が必要になります。使用したいメソッドがこの gem に存在しません。

at_startandat_exitメソッドは test-unit gem に存在します

Minitest gem (Ruby 1.9 でデフォルトでインストールされる) と Test-Unit gem (を使用して手動でインストールされるgem install test-unit) の両方があると仮定すると、test-unit gem が欲しいことを具体的に述べる必要があります。

test/unit を要求する前に、test-unit gem の使用法を指定します。

gem 'test-unit'
require 'test/unit'
于 2012-11-08T15:27:48.810 に答える