bin/guard init spork #这一步将产生一个Guardfile文件 bin/guard init rspec #先运行spork,这样Guardfile中spork位于前面,否则会出错。
由于编程都是自学的,应用程度不高,很长一段时间都对测试方面避而不见。但看网上很多大牛都推崇“行为驱动开发”(Behavior-driven development),决定也尝试一把。
本文严格说算不上原创,因为基本都是从网上学习来的,思考的余地不大。感谢网络,让俺们也能搞定这种复杂而且先进的流程。
环境:ubunut12.04, ruby1.9.3-p327, rails3.2.11
第一步:创建测试App,使用默认的sqlite3
rails new test-app --skip-test-unit --skip-bundle
这里忽略了默认的单元测试生成和bundle安装。
第二步:使用git进行版本管理,由于本项目后续可能会继续测试方面的学习。
git init vim .gitignore mv README.rdoc README.md vim README.md //添加程序说明 git add . git commit -m "The first commit" git remote add origin https://github.com/adventurelw/test-app.git git push -u origin master
第三步:修改Gemfile添加所需要的gem。
https://github.com/adventurelw/test-app/blob/master/Gemfile
第四步:运行bundle
bundle install --binstubs
--binstubs可以将rake命令放进bin目录,使得bundle exec rspec可以bin/rspec来运行。
第五步:运行rspec
rails g rspec:install
这一步将生成spec目录和spec/spec_helper.rb,其中对rspec的配置主要在spec_helper.rb文件。
第六步:运行guard初始化spork和rspec
bin/guard init spork #这一步将产生一个Guardfile文件 bin/guard init rspec #先运行spork,这样Guardfile中spork位于前面,否则会出错。
编辑Guard文件,添加:
require 'active_support/core_ext'
由于不使用cucumber,所以将其相关环境删除。
https://github.com/adventurelw/test-app/blob/master/Guardfile
编辑spec/spec_helper.rb:
添加spork支持。
https://github.com/adventurelw/test-app/blob/master/spec/spec_helper.rb
第七步:运行
bin/guard将会自动启动spork并检测文件变化。
显示以下类似信息则测试环境已经安装成功。
Finished in 0.05937 seconds
0 examples, 0 failures
第八步:对factory_girl进行配置
spec/spec_helper.rb文件RSpec.configure do |config| .. end中添加:
config.include FactoryGirl::Syntax::Methods
config/application.rb中:
config.generators do |g| g.fixture_replacement :factory_girl, :dir => 'spec/factories' end
第九步:配置capybara
spec/spec_helper.rb文件require 'rspec/autorun'后:
require 'capybara/rspec' require 'capybara/rails'
当运行如下命令产生测试文件或者默认生成集成测试时:
rails g integration_test xxxx
将会在spec目录下生成requests目录包含相关测试文件,这时需要添加如下代码到spec/spec_helper中,否则会出现visit这些方法未定义的情况,,features目录不需要这个,并且capybara2以上默认是在features测试,所以下面的代码并不推荐。
RSpec.configure do |config| config.include Capybara::DSL, :example_group => { :file_path => "spec/requests" } end end
第十步:配置simplecov
在spec/spec_helper.rb最上边添加:
require 'simplecov' SimpleCov.start 'rails'
第十一步:配置database_cleaner
在spec/spec_helper.rb中config.order="random"下添加:
config.before(:suite) do DatabaseCleaner.strategy = :transaction DatabaseCleaner.clean_with(:truncation) end config.before(:each) do DatabaseCleaner.start end config.after(:each) do DatabaseCleaner.clean end
相关推荐
至此,你已经成功地在Rails项目中搭建了Autotest和Spork的测试环境。当你修改代码后,测试会自动运行,Spork会提供更快的测试执行速度。这种高效的工作流程有助于提高开发效率,确保代码质量和项目的稳定性。 然而...
在Windows XP系统上搭建Ruby on Rails开发环境,可以借助RadRails这款集成开发环境(IDE)进行辅助,下面将详细介绍这一过程。 首先,我们需要安装Ruby语言。Ruby是一种面向对象的、动态类型的编程语言,其语法简洁...
7. **Testing**:Rails强调测试驱动开发,内置了RSpec、Minitest等测试框架,支持单元测试、集成测试和功能测试,确保代码质量。 8. **Asset Pipeline**:Rails的资产管道处理JavaScript、CSS和图像等静态资源,...
Rails 4.2.0支持RSpec、Minitest等多种测试框架,`rails_setup`可能包含如何设置和运行测试的说明。 9. 最后,部署到生产环境(如Heroku、AWS或自托管服务器)时,`rails_setup`可能包含部署策略和配置指南。 总的...
总之,Rails入门教程一将涵盖Rails的基础知识,包括环境搭建、项目创建、MVC架构的理解、数据库操作、路由配置、控制器和视图的使用,以及测试工具的介绍。通过学习,初学者可以快速掌握Rails的基本技能,为进阶开发...
通过阅读"rubyonrails21-cn.pdf"这本书,读者可以学习如何搭建Rails环境,理解MVC架构,学习数据库设计,掌握路由规则,编写控制器和视图,进行测试,以及了解如何部署Rails应用。此外,书中可能还涵盖了Rails的安全...
Rails鼓励开发者进行测试,使用如RSpec和Capybara等工具编写测试,确保代码质量。 "ruby on rails 学习资料pdf"可能是综合性的学习指南,包含了从初学者到进阶者的各种主题,包括Rails的安装和配置、模型关系、控制...
在《Ruby On Rails实践》这本书中,读者可以期待学习到如何搭建Rails开发环境,创建第一个Rails应用,了解数据库设计和ActiveRecord的使用,掌握路由配置,深入理解控制器和视图的工作原理,以及如何进行测试和调试...
描述中的“这是本人精心收集的重要软件”表明这可能是一个包含Rails最新版及其相关工具和库的压缩包,可能是为了方便开发者快速搭建开发环境或者进行学习。 标签中的“on rails最新版”和“ruby”进一步强调了这个...
接下来,书中会详细解释Rails的安装和配置过程,包括环境搭建、数据库配置以及Gemfile的使用,使读者能够快速创建并运行第一个Rails应用。同时,还会讲解Rails的核心组件,如路由、控制器、模型和视图,以及它们在...
《Ruby on Rails for Dummies》这本书将引导读者从安装Ruby和Rails环境开始,逐步学习如何创建模型、视图和控制器(MVC架构),搭建数据库,使用路由系统,以及实现CRUD(Create, Read, Update, Delete)操作。...
2. **Rails环境搭建**:学习如何安装Ruby、Rails以及相关的开发工具,如Git、SQLite、TextMate或Sublime Text等,创建第一个“Hello, World!”应用。 3. **Rails生成器**:Rails提供了许多命令行工具,如`rails ...
8. **测试驱动开发(TDD)**:Rails鼓励TDD,了解RSpec或Minitest等测试框架,编写单元测试和集成测试。 9. **部署**:掌握如何将Rails应用部署到服务器,如Heroku或DigitalOcean。 10. **Rails最佳实践**:学习...
7. **测试(Testing)**:Rails鼓励TDD(测试驱动开发),提供了集成的测试框架如Test::Unit、RSpec和Cucumber,可以编写单元测试、集成测试和功能测试,确保代码质量。 8. **Gemfile与Bundler**:Gemfile是Ruby项目...
9. **测试支持**:Rails内置了测试框架,如Test::Unit和RSpec,提供模型、控制器和功能测试的支持,鼓励TDD(测试驱动开发)和BDD(行为驱动开发)。 10. **社区和生态系统**:Rails拥有庞大的开发者社区,产生了...