首页
/ Guard::Minitest 技术文档

Guard::Minitest 技术文档

2024-12-18 20:34:14作者:袁立春Spencer

1. 安装指南

前提条件

在安装 Guard::Minitest 之前,请确保已经安装了 Guard

使用 Bundler 安装

最简单的安装方式是使用 Bundler

  1. 在项目的 Gemfile 中添加 Guard::Minitest

    group :development do
      gem 'guard' # 注意:在新版本中这是必要的
      gem 'guard-minitest'
    end
    
  2. 运行 Bundler 安装:

    $ bundle
    
  3. 通过以下命令将 guard 定义添加到 Guardfile 中:

    guard init minitest
    

2. 项目的使用说明

基本用法

Guard::Minitest 允许在文件修改时自动运行测试。它与 minitest 框架兼容,支持 minitest >= 3.0,尤其是 5.x 版本。

Ruby on Rails 项目

Spring 支持

在 Rails 项目中,建议使用以下 Spring 命令:

guard "minitest", spring: "bin/rails test" do
  # ...
end

Rails gem 依赖

Rails 在测试套件中按需懒加载 gem,这可能导致 Guard::Minitest 无法运行所有测试。解决方法包括添加缺失的依赖或移除相关测试。

例如,如果性能测试需要 ruby-prof,可以在 Gemfile 中添加:

group :test do
   gem 'ruby-prof'
end

或者移除性能测试目录。

3. 项目API使用文档

可用的选项

Guard::Minitest 提供了多种选项来定制测试行为:

  • all_on_start: false:启动时运行所有测试,默认值为 true
  • all_after_pass: true:在修改的测试通过后运行所有测试,默认值为 false
  • cli: '--test':传递任意 Minitest CLI 参数,默认值为空字符串。
  • test_folders: ['tests']:指定包含测试文件的路径数组,默认值为 %w[test spec]
  • include: ['lib']:指定测试命令的包含路径。
  • test_file_patterns: %w[test_*.rb]:指定测试文件必须匹配的模式,默认值为 %w[*_test.rb test_*.rb *_spec.rb]
  • spring: true:启用 Spring 支持,默认值为 false
  • zeus: true:启用 Zeus 支持,默认值为 false
  • drb: true:启用 DRb 支持,默认值为 false
  • bundler: false:不使用 bundle exec 运行 Minitest 命令,默认值为 true
  • rubygems: true:运行 Minitest 命令时加载 RubyGems,仅在禁用 Bundler 时有效,默认值为 false
  • env: {}:指定测试命令调用时设置的环境变量,默认值为空。
  • all_env: {}:指定运行所有测试时设置的额外环境变量,默认值为 false
  • autorun: false:自动加载 minitest/autorun,默认值为 true

选项使用示例

:test_folders:test_file_patterns

可以通过 :test_folders 选项更改测试文件的默认位置,通过 :test_file_patterns 选项更改测试文件的模式:

guard :minitest, test_folders: 'test/unit', test_file_patterns: '*_test.rb' do
  # ...
end

:cli

可以通过 :cli 选项传递任意 Minitest CLI 参数:

guard :minitest, cli: '--seed 123456 --verbose' do
  # ...
end

:spring

启用 Spring 支持:

guard :minitest, spring: true do
  # ...
end

:zeus

启用 Zeus 支持:

guard :minitest, zeus: true do
  # ...
end

:drb

启用 DRb 支持:

guard :minitest, drb: true do
  # ...
end

4. 项目安装方式

通过 Bundler 安装

  1. Gemfile 中添加:

    group :development do
      gem 'guard'
      gem 'guard-minitest'
    end
    
  2. 运行 bundle install 安装依赖。

  3. 运行 guard init minitest 生成 Guardfile

手动安装

如果不想使用 Bundler,可以直接通过 gem install 命令安装:

$ gem install guard-minitest

安装完成后,手动编辑 Guardfile 以配置 Guard::Minitest

通过以上步骤,您可以顺利安装并使用 Guard::Minitest 来自动化运行 Minitest 测试。

登录后查看全文
热门项目推荐
相关项目推荐

热门内容推荐

项目优选

收起
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
51
14
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
289
804
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
110
194
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
481
387
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
57
138
CangjieMagicCangjieMagic
基于仓颉编程语言构建的 LLM Agent 开发框架,其主要特点包括:Agent DSL、支持 MCP 协议,支持模块化调用,支持任务智能规划。
Cangjie
576
41
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
96
250
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
355
279
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
362
37
MateChatMateChat
前端智能化场景解决方案UI库,轻松构建你的AI应用,我们将持续完善更新,欢迎你的使用与建议。 官网地址:https://matechat.gitcode.com
688
86