Cyperful 项目使用教程
cyperful Interactive system testing UI for capybara 项目地址: https://gitcode.com/gh_mirrors/cy/cyperful
1. 项目介绍
Cyperful 是一个为 Ruby Capybara 系统测试提供交互式 UI 的增强工具。它借鉴了 Cypress.io 等前端测试工具的优秀开发者体验(DX),为 Ruby 开发者提供了一个直观的测试调试界面。Cyperful 允许开发者在测试过程中实时查看测试步骤、暂停测试并进行页面交互、查看 API 请求和控制台日志,甚至可以自动重启测试或录制测试视频。
主要特性
- 实时步进:测试执行中的每一步骤都能即时展示,即时更新。
- 交互式测试:随时暂停测试,直接在页面上操作验证,大大提高了调试效率。
- 全面监控:不仅能看到页面上的操作,还能捕获 API 请求与控制台日志,信息一目了然。
- 自动化重启:代码修改后自动重启测试,减少重复劳动,加速迭代周期。
- 视频回放:实验性功能允许录制测试过程视频,复现问题变得简单直观。
2. 项目快速启动
安装
首先,在 Gemfile 中添加 Cyperful:
group :test do
gem "cyperful", require: false
end
然后运行 bundle install
安装依赖。
配置
RSpec
在 rails_helper.rb
文件中添加以下配置:
CYPERFUL = ENV["CYPERFUL"]
require "cyperful/rspec" if CYPERFUL
RSpec.configure do |config|
# 确保在 Cyperful 设置之前配置浏览器驱动
config.prepend_before(:example, type: :system) do
driven_by :selenium, using: :chrome, screen_size: [1400, 1400]
end
end
Minitest
在 application_system_test_case.rb
文件中添加以下配置:
CYPERFUL = ENV["CYPERFUL"]
require "cyperful/minitest" if CYPERFUL
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
include Cyperful::Minitest::SystemTestHelper if CYPERFUL
driven_by :selenium, using: :chrome, screen_size: [1400, 1400]
end
使用
运行测试时,设置 CYPERFUL
环境变量:
CYPERFUL=1 rails test test/system/my_test.rb:123
3. 应用案例和最佳实践
案例1:实时调试复杂系统测试
在开发一个复杂的 Rails 应用时,系统测试往往涉及多个页面和交互。使用 Cyperful,开发者可以在测试过程中实时查看每一步的操作,暂停测试并手动检查页面状态,从而快速定位问题。
案例2:自动化测试与代码修改同步
在敏捷开发过程中,代码频繁修改是常态。Cyperful 的自动重启功能确保了每次代码修改后,测试能够自动重新运行,减少了手动重启测试的繁琐操作,提高了开发效率。
最佳实践
- 单个测试文件运行:Cyperful 目前最适合单个测试文件运行,建议在测试文件中只包含一个测试用例,或者通过指定行号来运行单个测试。
- 配置选项优化:根据项目需求,调整
reload_test_files
、auto_run_on_reload
和history_recording
等配置选项,以获得最佳的测试体验。
4. 典型生态项目
Capybara
Capybara 是一个用于 Web 应用的验收测试框架,支持多种浏览器驱动。Cyperful 作为 Capybara 的增强工具,提供了更丰富的调试功能,两者结合使用可以大大提升测试效率。
Selenium
Selenium 是一个用于 Web 应用的自动化测试工具,支持多种浏览器。Cyperful 目前仅支持 Selenium + Chrome 驱动,未来可能会扩展支持更多浏览器和驱动。
Rails
Rails 是一个流行的 Ruby Web 应用框架。Cyperful 特别针对 Rails 7.1 及 Ruby 3.2.1 环境进行了优化,与 Rails 结合使用可以获得更好的测试体验。
通过以上教程,您应该能够快速上手并使用 Cyperful 进行高效的系统测试。希望 Cyperful 能够帮助您在开发过程中更好地调试和验证您的应用。
cyperful Interactive system testing UI for capybara 项目地址: https://gitcode.com/gh_mirrors/cy/cyperful