Ruby3.x+Rails6+CircleCI+Rspec+Rubocop+MySQL8のプロジェクト作った。(ソースコードあり)Rails プロジェクトを立てるたびに同じようなプロジェクト作成作業をするのが手間なので、ソースコードを残しておく。 OSSライセンスにしておくので、この環境で使いたい人がいたら、使ってください。 環境 Ruby3.x Rails6 CircleCI Rspec Rubocop MySQL8
Mac0S Big Sur 11.5.2 ruby 3.0.2 rails 6.1.4 docker 20.10.6 MySQL 8.0.27 はじめに Docker環境でRspecとRubocopを入れるまでの記事は多くあったのですが、その後GithubとCircleCIを接続する説明が書いてある記事はなかったので書くことに決めました。 RspecとRubocopのインストール方法はこちら Rspecのインストール方法 Rubocopのインストール方法 CircleCIの導入と自動テスト まず、CircleCIのサイトに飛んでGithubでログインし、CircleCIとGithubを接続します。 そして、テキストエディタで自分のプロジェクトのすぐ下(テキストエディタのファイルの一番上)に.circleciというディレクトリを作成し、この中にconfig.ymlというファイルを作成します。
RailsアプリでRSpecを使うと通常example実行のたびにデータが削除されるようになっているが、これが具体的にどのように行われているかについて。 検証環境は以下の通り。 ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-darwin16] rails 5.2.2 rspec 3.8.0 rspec-rails 3.8.2 SQLite 3.16.0 use_transactional_fixtures RailsでRspecを使うとき、 bundle exec rails generate rspec:install を実行して初期設定をすることになると思うが、そのときに spec/rails_helper.rb という設定ファイルも同時に作られる。 このファイルにデフォルトで次のような設定が記載されている。 RSpec.confi
この記事を読むとできること GitHub の README に RSpec のカバレッジのバッジを表示させることができる バッジをクリックするとカバレッジの詳細やグラフを確認することができる はじめに GitHub のリポジトリを見ていると、テストのカバレッジ (全アプリケーションのコードに対するテストコードのカバー率) が表示されたバッジをよく見かける。あれを自分もやってみたいと思い設定をしてみたのだが、思っていた以上に躓くポイントが多かった。そのため、導入方法をここに残しておく。 Codecov も SimpleCov も CircleCI もメジャーなツールではあるのだが、この 3 つを組み合わせた場合の導入方法を紹介している記事がほとんどなかった。この記事が、同じことを実現しようとしている人の役に立てば幸いである。 なお、この記事では、Git のホスティングサービスには GitHu
Rspec request specでセッションの読み込み、書き込みを実現してみる 今回はActionDispatch::Requestのsessionメソッドを上書きする形で対応します allow_any_instance_of(ActionDispatch::Request).to receive(:session).and_return({}) RSpec.configure do |config| # ... # テストケース共通の事前処理 config.before(:each) do # let(:rspec_session) で指定された値を セッションの初期値とします session = defined?(rspec_session) ? rspec_session : {} # destroyメソッドを実行してもエラーにならないようにします(必要であれば) session
はじめに CI/CDのサービスとして最近はGitHub Actionsを利用しているのですが、CircleCIと比較した時にRSpecが失敗した時の実行結果が分かりにくいのが不満でした。 そんなストレスを解消するために社内ハッカソンで作った以下のGitHub Actionを紹介します。 RSpec Report · Actions · GitHub Marketplace · GitHub 何が出来るの? PRイベントの場合は失敗結果がコメントされます。 またコメントされることで同様の内容がメールでも通知されるので、失敗したテストの内容がGitHubにアクセスしなくても把握できるようになります。 PRイベント以外の場合はChecks API経由で通知されます。 使い方 name: Build on: pull_request: jobs: rspec: steps: # RSpec実行の為
CopyRSpec.describe Stack, type: :model do let!(:stack) { Stack.new } describe '#push' do context '文字列をpushしたとき' do it '返り値がpushした値であること' do expect(stack.push('value')).to eq 'value' end end context 'nilをpushした場合' do it 'ArgumentErrorになること' do expect { stack.push(nil) }.to raise_error(ArgumentError) end end end describe '#pop' do context 'スタックが空の場合' do it '返り値はnilであること' do expect(stack.pop).to be_n
Leaner 開発チームの黒曜(@kokuyouwind)です。 AWS Startup Community Conference 2022 に CfP を出したので通ってほしい今日このごろです。 さて、今回は Rubocop 警告の修正で少し手間取った話を書きます。 RSpec/MessageSpies に引っかかったコード あるクラスで「Rails.logger に特定文字列を出力していることを検証したい」というケースがあり、この spec を以下のように書いていました。 # ログを出力するクラス class Hoge def log Rails.logger.info('test message') end end # spec RSpec.describe Hoge do describe 'log' do let(:logger) { instance_double(Active
Eight事業部プロダクト部 Platform Group / Engineering Manager の 藤井洋太郎(yotaro) です。 さて、私が属するPlatform Groupは「アーキテクチャ刷新」「データ基盤整備」「セキュリティ」「環境整備」など多方面での開発・改善を行っています。 本記事では「ローカル開発/CI環境改善」の取り組みについて取り上げたいと思います。 早速ですが、みなさん、 テスト書いてますか? 書いてますよね、そうですよね!!!この令和時代において、テストを書いてない人がいるわけ無いですよね😇 一方で、AWSなどのフルマネージドサービスに依存するテストコード となるとどうでしょうか? ドキっとする人も多いのではないでしょうか? 外部サービスに依存するテストを真剣にやろうと思うと、意外と考えることが多く後回しになってしまいがちです。 みなさんも以下のような経
差分のあるファイルのみ、サクッと RuboCop や RSpec を実行したい時のワンライナー。 RuboCop:
はじめに 仕事でAuth認証のspecを書く場面があったので、いろいろハマったことも含め簡潔に書いていきたいと思います。 【実行環境】 ・ Rails 5.1.4 ・ RSpec 3.7 ・ Ruby 2.4.3 ざっくり実装の手順 Rspecのセットアップ モックの作成 Controllerの認証テスト 【前提】omniauthのルート設定 複数モデルで実装する方も多いと思うので、 Omniauthの認証処理はAuthenticationsControllerでやるとします。 get "auth/:provider" => "authentications#new", as: :new_authentication get "auth/:provider/callback" => "authentications#create", as: :create_authentication 参
はじめに 僕が翻訳者として参加している電子書籍「Everyday Rails - RSpecによるRailsテスト入門」は2014年の日本語版発売以来、現在まで随時内容をアップデートを繰り返しています。 今の内容も十分実用性があるのですが、使用しているライブラリのバージョンが若干古くなっているせいか、ときどきネット上で「サンプルアプリのセットアップがうまくいかない」というコメントを見かけたりします。 そこで僕が実際にゼロからサンプルアプリをセットアップする動画を作成してYouTubeにアップしてみました。 今回作成した動画はこちら 今回作成した動画はこちらです。再生時間は約18分です。 【2019年10月版】「Everyday Rails - RSpecによるRailsテスト入門」の環境作成手順 動画の内容 この動画ではGitHubからサンプルアプリをクローンして、サンプルアプリが起動する
Rspecのファイルアップロードテスト時にcommitteeでCommittee::InvalidRequestが発生する事象への対処方法RubyRSpecCommittee Committee::InvalidRequest: #/paths/~1contracts/post/requestBody/content/multipart~1form-data/schema/properties/original_file expected string, but received ActionDispatch::Http::UploadedFile: #<ActionDispatch::Http::UploadedFile:0x00007fa77e1f36a0> 何がしたいのか multipart/form-data 形式でファイルアップロードを受け取るようなAPIを定義している。 API
Ruby Weeklyで特集されていたVSCodeの拡張機能を使ってVSCodeをIDEにしようみたいな記事を読んで、特集されていたRuby Test Explorerという拡張機能を 試してみたのでメモに残します。 www.driftingruby.com github.com 環境 導入してみる 試してみる 全体のSpecを走らせてみた。 単体で走らせてみる。 わざと失敗させてみる 環境 docker-composeで立ち上げた個人のRailsプロジェクトで試してみました。VSCodeのRemote Containerを使ってコンテナ内で作業します。 Docker version 19.03.12 docker-compose version 1.27.2 Rails 5.2.4.4 ruby 2.6.6 導入してみる Remote Containerに接続した状態で # + ,を押し
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く