#25: fisher インストール、Ruby のテストを test-unit へ変更
やったこと(Done)
- N 予備校 プログラミング入門 Web アプリコース
- 第 2 章 準備しよう
12. GitHub で Web サイト公開
(同内容)
- 第 2 章 準備しよう
fish の環境を整える
fish のパッケージマネージャー fisher
をインストールします。
$ curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish
指定している curl
のオプションは以下の通り。
--create-dirs
: ファイル保存時に必要なディレクトリを作成する-s
: silent mode。progress meter や error messages を表示しない-L
: Location ヘッダーによる異なる URL へのリダイレクトに対応する-o
: 取得したデータを stdout に出力するのではなくファイルに保存する
$ fisher add rafaelrinaldi/pure
pure
という theme をインストールします。すっきりしていてよいですね。
$ fisher add decors/fish-ghq
# $ fisher add oh-my-fish/plugin-peco
fish-ghq
ではデフォルトの selector が fzf
になっているので環境変数 GHQ_SELECTOR
を設定します。
$ set -g GHQ_SELECTOR peco $ echo $GHQ_SELECTOR peco
これで Ctrl + G
で ghq 管理下のディレクトリに移動することができます。
今まで関数を直書きで config.fish
に書いていたのですが、移動直後の表示が完全ではないような感じだったので上記プラグインにおまかせすることにしました。
peco
でコマンド履歴を検索する方についてはプラグインで提供されている関数と直書きしていた関数がほとんど同じようなのでそのままとします。
Ruby テスト
先日書いた FizzBuzz のテストを Minitest から test-unit に変更することにしました。
『パーフェクト Ruby』16 章に詳しく載っていたので公式ドキュメントと合わせて参照しつつ、Rake から実行する形で設定しました。
Rakefile
require 'rake/testtask' Rake::TestTask.new(:test) do |t| t.pattern = 'test/**/*_test.rb' end task default: :test
テストは以下のようになりました。格好いいので Power Assert を積極的に使っていこうと思います。
require 'test/unit' require './lib/fizzbuzz.rb' class TestSample < Test::Unit::TestCase def test_fizzbuzz assert { fizzbuzz(1) == '1' } assert { fizzbuzz(2) == '2' } assert { fizzbuzz(3) == 'Fizz' } assert { fizzbuzz(4) == '4' } assert { fizzbuzz(5) == 'Buzz' } assert { fizzbuzz(6) == 'Fizz' } assert { fizzbuzz(15) == 'FizzBuzz' } end end
こういうテスト用のディレクトリ、テストの雛形ファイルなどを Rake で生成してみたいですね。
わかったこと(Fact)
Ruby でのテスト自動化
ファイルの変更を検知して自動でテストを実行する仕組みを利用したいと思い、調べてみました。
Guard という gem がありますが、用途ごとにプラグインを利用するタイプのようで、そのプラグインが現在ではメンテナンスされていないものが複数含まれているようでした。
test-unit 用の Guard プラグインは 4 年前から更新が止まっているみたい。https://t.co/Qikw1PcoSl
— ryocalm (@ryocalm) August 15, 2020
「guard-minitest の方がいいよ!」とあるけれど、そちらも 4 年前で時が止まっている模様。
参考文献(References)
fish
- jorgebucaran/fisher: A plugin manager for fish—the friendly interactive shell.
- rafaelrinaldi/pure: Port of the
pure
ZSH prompt to Fish 🐟 - decors/fish-ghq: ghq completion and keybinding for fish shell
- oh-my-fish/plugin-peco: Browse your fish history with peco.
- fish shellが結構良かった話 - Qiita
Ruby
- test-unit - Ruby用単体テストフレームワーク
- Test::Unitでテストを書く - Qiita
- guard/guard: Guard is a command line tool to easily handle events on file system modifications.
- ruby/rake: A make-like build utility for Ruby. ー File: getting-started — test-unit - test-unit
Git
その他
ブログでキーバインドの表記をどうするか迷いますね。つなぎをハイフン-
にするか、プラス+
にするか。モディファイアキーの表記をどうするか。あと、キーをキャピタライズするか。
例えば Ctrl
と g
を同時に押すキーバインドの場合、Emacs 的な表記だと C-g
と書きます。
でも一般的には Ctrl + G
と書いてある方が読みやすいのではないだろうかと思ったり。このブログでもちょっと表記揺れがあります。Emacs のことを書いているときは Emacs 的表記で、それ以外は普通の(?)表記にしておきましょうかね。