[Rails] ScreenshotHelperのドキュメント改善 - HTML保存の環境変数設定を明確化
Context
Railsのシステムテストでスクリーンショットを撮影する際、RAILS_SYSTEM_TESTING_SCREENSHOT_HTML環境変数を設定することでHTML出力も保存できます。しかし、この環境変数に具体的にどのような値を設定すべきか、ドキュメントからは明確ではありませんでした。ソースコードを確認しない限り、実際には1という値を設定する必要があることがわかりませんでした。
このPRは、ドキュメントにその設定値を明記することで、開発者がソースコードを調査することなく正しく環境変数を設定できるようにします。
Technical Detail
変更内容はActionDispatch::SystemTesting::TestHelpers::ScreenshotHelperモジュールのドキュメント部分です。
変更前:
# You can use the `html` argument or set the
# `RAILS_SYSTEM_TESTING_SCREENSHOT_HTML` environment variable to save the HTML
# from the page that is being screenshotted so you can investigate the elements
# on the page at the time of the screenshot
変更後:
# You can use the `html` argument or set the
# `RAILS_SYSTEM_TESTING_SCREENSHOT_HTML` environment variable to `1` to save the HTML
# from the page that is being screenshotted so you can investigate the elements
# on the page at the time of the screenshot
使用例
システムテスト実行時に、スクリーンショットと共にHTMLも保存したい場合:
RAILS_SYSTEM_TESTING_SCREENSHOT_HTML=1 rails test:system
またはテストコード内でhtml引数を使用する方法もあります:
class PostsTest < ApplicationSystemTestCase
test "creating a post" do
visit posts_path
click_on "New Post"
# スクリーンショットとHTMLの両方を保存
take_screenshot(html: true)
end
end
実装の背景
PR内では、ENV.key?("RAILS_SYSTEM_TESTING_SCREENSHOT_HTML")のようなチェック方法に変更することも検討されましたが、これは既存の動作を変更する破壊的変更になる可能性があるため、ドキュメントの改善のみに留められました。この判断により、既存コードとの互換性が保たれています。