私はルビーとテスト/ユニットに少し慣れていないので、これはばかげた質問のように思えるかもしれませんが、テンプレートテストケースにテストを動的に入力する方法を探しています(順序は重要です)。
基本的に私はこれに似たテストケースを持っています:
マスターテストケースファイル:
#testcase.rb
require 'test/unit/ui/console/testrunner'
require 'watir/testcase'
load "customTest1.rb"
class TC_Test_US < Watir::TestCase
def test_a
#do stuff
end
def test_b
#do stuff
end
#dynamically load website specific modules here
include myStuff
# end of custom tests carry on with generic tests
def test_y
#do stuff
end
def test_z
#do stuff
end
end
-カスタムテストケース
#customTest1.rb
module myStuff
def test_customTest1
#do stuff
end
def test_customTest2
#do stuff
end
end
これで、いくつかのcustomTestX.rbファイルができました。現在、すべてのファイルでtest_aをtest_zに複製していますが、ファイルを変更したり、新しいファイルを追加したりする必要がある場合は、これは最悪です。
マスターテストでテストを再利用し、カスタムテストを中央に動的に挿入できるようにしたい(test_bはテストの前に、test_yはテストの後にとどまることが重要です)。「loadcustomTestX.rb」を動的に変更し、各ファイルで同じ名前のモジュールを維持します。
このようにこのテストケースを起動すると、エラーは発生しませんが、カスタムテストは実際には実行されません。スクリプトはtest_bからtest_yにスキップし、customTest1とcustomTest2は実行されません。
答えはおそらく私のメインのtestcase.rbからインスタンス化することにありますが、私はまだこれを行うことに成功していません。マスターファイルをロードするとすぐに実行されます。testrunnerrequire行を削除すると、例外なくファイルをロードできません。これを行った場合、メソッドを中央に挿入する方法がわかりません。助言がありますか?
ありがとう!!!