1

ここで受けた支援のおかげで、継続的に検証または UI (Watir を使用) を行う CI サーバーにある ruby​​ テストのテスト スイートがあります。しかし、新しい要件が発生し、CI セットアップのバグが実際に浮き彫りになりました。

したがって、rakefileには次のものがあります

require 'rake/testtask'
require './modules/utilities'
gem 'test-unit'
require 'test/unit'
require 'ci/reporter/rake/minitest'

randomId = 1 + rand(100000)
Server ||= "http://someserver_hostname:8080/login.html"
NormalUser = "watir" + randomId.to_s + "_normal"
AdminUser = "watir" + randomId.to_s + "_admin"
Password = "Watir_" + randomId.to_s

Rake::TestTask.new(:runtests) do |t|
  t.libs << "test"
  t.test_files = FileList['./**/Test*.rb']
  t.verbose = true
end 

task :testSetup do
  Server = "http://#{ENV["server"]}:8080/login.html"
  p "Using the following server\n\n#{Server}\n\n"
  #Lets create our own user for these tests
  createNormalUser(NormalUser, Password)
  createAdminUser(AdminUser, Password)
end

task :testCleanUp do
  #Delete our own user
  deleteUser(NormalUser)
  deleteUser(AdminUser)
end


task :runAllTests => [:testSetup,:runtests, :testCleanUp]

目標は、誰かが Jenkins でビルドを手動で実行し、テストを実行するサーバーを (ドロップダウン リストを介して) 指定できるようにすることです。すべての設定が完了し、選択したサーバーにユーザーが作成されました。問題は、次のように定義されている Ruby スクリプトの別の場所でハードコードされたサーバー変数を使用してテストが実行されることです。

Server ||= "http://Server_hostname:8080/login.html"

私が正しく読んだ場合、サーバーがまだ定義されていない場合にのみ再割り当てされます。これはまさに私が必要とするものです。問題は、この定義を削除すると、サーバーが未定義になることです。そのままにしておくと、rakefile で定義したホスト名ではなく、このホスト名に対してテストが実行されます。明らかに私はどこかでうんざりしていますが、すべてが1つのプロセスであるため、rakefileに設定されたサーバーがテストスクリプトに表示されない理由がわかりません ありがとう

createXXUser メソッドと deleteUser メソッドがすべて正しく機能すること、つまり、Server、NormalUser、Password などの値が正しいことを追加する必要があります。

4

0 に答える 0