新しくプロジェクトをつくろうとした時に思った事
newとか必要なgemとか忘れてて最小構成を調べ直した・・・
ということで備忘録としてまとめておきます
やりたいこと
- DBはmysql
- testはrspec
- テストを便利にするツールは最初から組み込む
- travis ciが動くようにする
プロジェクトを作成する
testはrspecで行うためにtest::unitを組み込まない
rails new srvadmin --skip-test-unit -d mysql
実行ログは下記
create
create README.rdoc
create Rakefile
create config.ru
create .gitignore
create Gemfile
create app
create app/assets/javascripts/application.js
create app/assets/stylesheets/application.css
create app/controllers/application_controller.rb
create app/helpers/application_helper.rb
create app/views/layouts/application.html.erb
create app/assets/images/.keep
create app/mailers/.keep
create app/models/.keep
create app/controllers/concerns/.keep
create app/models/concerns/.keep
create bin
create bin/bundle
create bin/rails
create bin/rake
create config
create config/routes.rb
create config/application.rb
create config/environment.rb
create config/secrets.yml
create config/environments
create config/environments/development.rb
create config/environments/production.rb
create config/environments/test.rb
create config/initializers
create config/initializers/backtrace_silencers.rb
create config/initializers/cookies_serializer.rb
create config/initializers/filter_parameter_logging.rb
create config/initializers/inflections.rb
create config/initializers/mime_types.rb
create config/initializers/session_store.rb
create config/initializers/wrap_parameters.rb
create config/locales
create config/locales/en.yml
create config/boot.rb
create config/database.yml
create db
create db/seeds.rb
create lib
create lib/tasks
create lib/tasks/.keep
create lib/assets
create lib/assets/.keep
create log
create log/.keep
create public
create public/404.html
create public/422.html
create public/500.html
create public/favicon.ico
create public/robots.txt
create tmp/cache
create tmp/cache/assets
create vendor/assets/javascripts
create vendor/assets/javascripts/.keep
create vendor/assets/stylesheets
create vendor/assets/stylesheets/.keep
run bundle install
Your user account isn't allowed to install to the system Rubygems.
You can cancel this installation and run:
bundle install --path vendor/bundle
to install the gems into ./vendor/bundle/, or you can enter your password
and install the bundled gems to Rubygems using sudo.
Password:
Fetching gem metadata from https://rubygems.org/...........
Fetching additional metadata from https://rubygems.org/..
Resolving dependencies...
Installing rake 10.3.2
Using i18n 0.6.9
Using json 1.8.1
Installing minitest 5.3.5
Installing thread_safe 0.3.4
Installing tzinfo 1.2.1
Using activesupport 4.1.0
Using builder 3.2.2
Using erubis 2.7.0
Using actionview 4.1.0
Using rack 1.5.2
Using rack-test 0.6.2
Using actionpack 4.1.0
Using mime-types 1.25.1
Installing polyglot 0.3.5
Using treetop 1.4.15
Using mail 2.5.4
Using actionmailer 4.1.0
Using activemodel 4.1.0
Using arel 5.0.1.20140414130214
Using activerecord 4.1.0
Using bundler 1.6.2
Using coffee-script-source 1.7.0
Installing execjs 2.2.0
Using coffee-script 2.2.0
Using thor 0.19.1
Using railties 4.1.0
Using coffee-rails 4.0.1
Using hike 1.2.3
Installing multi_json 1.10.1
Installing jbuilder 2.1.1
Using jquery-rails 3.1.0
Installing mysql2 0.3.16
Using tilt 1.4.1
Using sprockets 2.11.0
Using sprockets-rails 2.1.3
Using rails 4.1.0
Using rdoc 4.1.1
Installing sass 3.2.19
Installing sass-rails 4.0.3
Using sdoc 0.4.0
Installing spring 1.1.3
Installing turbolinks 2.2.2
Installing uglifier 2.5.1
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
run bundle exec spring binstub --all
* bin/rake: spring inserted
* bin/rails: spring inserted
新しいアプリが作成されました。
gemに使うプラグインをインストールする
rspec等のテスト系で使うやつを予めインストールします
gemfileに以下を追加
group :development, :test do
gem 'rspec-rails'
gem 'capybara'
gem 'spork-rails'
gem 'guard-spork'
gem 'childprocess'
end
group :test do
gem 'selenium-webdriver', '2.35.1'
end
プラグイン追加
bundle install
Rspec準備
rails generate rspec:install
create .rspec
create spec
create spec/spec_helper.rb
create spec/rails_helper.rb
Travis Ci準備
アプリのhomeディレクトリに.travis.yml
を準備する
travis.yml
language: ruby
rvm:
- 2.1.0
gemfile:
- Gemfile
env:
- DB=mysql
before_script:
- "cp config/database_travis.yml config/database.yml"
script:
- bundle install --standalone --clean
- RAILS_ENV=test bundle exec rake --trace db:create
- RAILS_ENV=test bundle exec rake --trace db:migrate
- bundle exec rake db:test:prepare
- bundle exec rspec spec/
travisciが動いた時用のdatabase_travis.yml
も準備する
conifg/database_travis.yml
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password:
host: localhost
development:
<<: *default
database: srvadmin_development
test:$
<<: *default
database: srvadmin_test
production:
<<: *default
database: srvadmin_production
username: srvadmin
password: <%= ENV['SRVADMIN_DATABASE_PASSWORD'] %>
database.ymlはデフォルト
guardやsporkの設定等もありますが
とりあえずここまでがアプリ初期設定とします。
この変は1回目のテストをする時にまとめるか、随時追記する。