rspec-retry 项目教程
rspec-retryretry randomly failing rspec example项目地址:https://gitcode.com/gh_mirrors/rs/rspec-retry
目录结构及介绍
rspec-retry 项目的目录结构如下:
rspec-retry/
├── Gemfile
├── Guardfile
├── LICENSE
├── README.md
├── Rakefile
├── appraisals
├── changelog.md
├── github
│ └── workflows
│ └── ruby.yml
├── lib
│ └── rspec
│ └── retry.rb
├── spec
│ ├── spec_helper.rb
│ └── retry_spec.rb
├── .gitignore
├── .rubocop.yml
├── .ruby-version
├── .travis.yml
└── rspec-retry.gemspec
主要目录和文件介绍:
- Gemfile: 定义了项目的依赖关系。
- Guardfile: 用于自动化测试的配置文件。
- LICENSE: 项目的开源许可证。
- README.md: 项目的主要介绍文档。
- Rakefile: 用于定义Rake任务的文件。
- appraisals: 用于管理不同版本的依赖关系。
- changelog.md: 记录项目的变更历史。
- github/workflows/ruby.yml: GitHub Actions 的工作流配置文件。
- lib/rspec/retry.rb: 项目的主要代码文件。
- spec/spec_helper.rb: 测试配置文件。
- spec/retry_spec.rb: 测试示例文件。
- .gitignore: 定义了Git忽略的文件和目录。
- .rubocop.yml: RuboCop 的配置文件。
- .ruby-version: 指定项目使用的Ruby版本。
- .travis.yml: Travis CI 的配置文件。
- rspec-retry.gemspec: 项目的 gemspec 文件。
项目的启动文件介绍
项目的启动文件主要是 spec/spec_helper.rb
,它包含了项目的配置和初始化代码。以下是该文件的主要内容:
# spec/spec_helper.rb
require 'rspec/retry'
RSpec.configure do |config|
# 显示重试状态
config.verbose_retry = true
# 显示触发重试的异常
config.display_try_failure_messages = true
# 只在特定条件下重试
config.around :each, :js do |ex|
ex.run_with_retry retry: 3
end
# 重试回调
config.retry_callback = proc do |ex|
# 运行一些额外的清理任务 - 可以通过示例元数据过滤
if ex.metadata[:js]
Capybara.reset!
end
end
end
项目的配置文件介绍
项目的配置文件主要包括 Gemfile
和 rspec-retry.gemspec
。
Gemfile
Gemfile
定义了项目的依赖关系:
source 'https://rubygems.org'
gem 'rspec-retry', group: :test
rspec-retry.gemspec
rspec-retry.gemspec
定义了 gem 的详细信息和依赖关系:
Gem::Specification.new do |spec|
spec.name = "rspec-retry"
spec.version = "0.6.2"
spec.authors = ["Yusuke Mito", "Michael Glass"]
spec.email = ["yusuke.mito@gmail.com"]
spec.summary = "Retry intermittently failing rspec examples"
spec.description = "RSpec::Retry adds a :retry option for intermittently failing rspec examples"
spec.homepage = "https://github.com/NoRedInk/rspec-retry"
spec.license = "MIT"
spec.files = `git ls-files`.split($/)
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
spec.require_paths = ["lib"]
spec.add_dependency "rspec-core", ">= 3.0"
spec.add_development_dependency "appraisal"
spec.add_
rspec-retryretry randomly failing rspec example项目地址:https://gitcode.com/gh_mirrors/rs/rspec-retry