Closed ishikawa999 closed 3 years ago
@yui-har
レビューをお願いいたします。急ぎではないです。 意図が伝わらない処理などありましたらご質問ください。
実行したら次のような結果がActionsタブで確認できるようになります。(この結果はGitHubにログインしていないユーザーでも見ることができます) https://github.com/ishikawa999/redmica_ui_extension/actions/runs/776274073
application_system_test_case.rb を書き換えているのは、他のコンテナ(selenium/standalone-chrome-debug:3.141.59-europium)にChromeを持っている関係で次のような変更を加えないとsystemテストが動かないためです。
@@ -43,13 +43,17 @@ class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
}
}
)
-
+ options[:browser] = :remote
+ options[:url] = "http://chrome:4444/wd/hub"
+ Capybara.server_host = IPSocket.getaddress(Socket.gethostname)
+ Capybara.server_port = 3000
driven_by(
:selenium, using: :chrome, screen_size: [1024, 900],
options: options
)
setup do
+ Capybara.app_host = "http://#{Capybara.server_host}:#{Capybara.server_port}"
# Allow defining a custom app host (useful when using a remote Selenium hub)
if ENV['CAPYBARA_APP_HOST']
Capybara.configure do |config|
ご確認いただきありがとうございました。マージしました。
このリポジトリにpushしたとき、forkリポジトリからこのリポジトリに対してプルリクエストを作ったとき、CI実行履歴から手動で再実行を選択したときに
を実行します。
テスト対象:
RedMica:
DB:
の各組み合わせごとにテストを実行します。(6パターン)
これを動かすための環境作りについて説明: 実行速度を上げるためにRedMicaが動くために必要なライブラリが入っているredmica/redmica:latestイメージの上でテストを実行します。 redmica/redmica:latestにはproductionモードで動くためのdatabase.ymlやgem、ライブラリしか入っていないためsetup_redmica.shで必要なコマンドを実行しています。
また、
masterブランチ最新のRedMica
はredmica/redmica:latestの/usr/src/redmineディレクトリの中身をまるごとGitHubから取得したmasterブランチ最新のコードに置き換えることで動かしています。(かなり強引で、今後上手く動かなくなる可能性あり) 今後動かなくなったらredmica/redmica:latest上でテストするのをやめ、masterブランチ最新のRedMicaのテストができるDockerfile, docker-compose.ymlを書いてそれをGitHub Actionsで実行する形にするつもりです。 最初からそのやり方でも良いですが、書くコードの量が増えたり実行時間が増えたりするので一旦今の簡単な仕組みで実装してしまいたいと思っています。