技術記事

GitHubActionsでRubyのMinitestを実行する #事前準備編

この記事は「フィヨルドブートキャンプ Advent Calendar 2020 Part 1」 23日目の記事で書いた下記記事の内容が膨大になったため事前準備を分離したものです。

GitHubActionsでRubyのMinitestを実行する これは「フィヨルドブートキャンプ Advent Calendar 2020 Part1」23日目の記事です。 Part...

是非本編からご覧ください。

あじたま

GitHubにリポジトリを作ったり、テストコードを書いたりする記事になります。

Contents

GItHubActionsを試す前の事前準備

Gitの準備

Gitはローカルにインストールしておきます。

brew install git

インストールはHomebrewを使うといいかもしれません。

-bash: brew: command not found

もしなければ上記のように表示されます。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

その場合は上記コマンドでhomebrewをインストールしてからもう一度インストールを試してください。

git --version

Gitが入っているかどうか確かめておきます。

git version 2.24.3 (Apple Git-128)

大丈夫そうですね。

【GitHub】リモートリポジトリを作成しよう

GItHubのアカウントがない場合は作成しましょう。
GitHub公式

GitHubでコードを管理するためのクラウド上のリポジトリーを作成します(リモートリポジトリ)

GitHubにログインします。

ログインしたら右上プルダウンからRepositoriesを選んで進みます。

右上のほうにあるNEWを押します。
(プロフィール画像は昔に通りすがりの方に書いていただいたものです。実物とは大きくかけ離れている場合があります。)

リポジトリー名をつけてCreate repositoryを押して保存します。

GitHubActionsはpublicで作成したリポジトリーでは無料のようなので
今回はpublicにしておきましょう。

Descriptionにはこのリポジトリーの説明を書いておきます。

作成されたら自動的に以下の画面に移動します。

これでリモートリポジトリは完成です。
次はこのリポジトリを手元のパソコンにクローンしていきます。(環境を作る)

【ローカル】リポジトリーをクローン、ローカルリポジトリーを作成しよう

見出しは難しいですが作業は簡単です。

先ほど作ったリポジトリの画面に移動します。
もしくは、リポジトリ作成後に移動した画面の水色の範囲にあるURLを
ボタンがHTTPSになっていることを確認してコピーします。

ローカルのコンソールを開きます(macで行っています)

Gitが入っていることも確認した

リポジトリーをおくためのディレクトリーまで移動しよう。
今回は以下のパスに作成します。

cd ~/Dev/

git cloneコマンドで先ほど作成したリポジトリをコピーしてきます。

git clone 【コピーしたリポジトリURL】【作成したいディレクトリ名】

私の場合は下の画像のように作って確認しました。
クローンで作成されたディレクトリには.gitというgitの隠しディレクトリが作成されています。

作ったディレクトリに移動して、さらに2つのディレクトリを作成します。
コードを入れるディレクトリ「lib」と
テストコードを入れるディレクトリ「test」です。

cd ./actions-test

ディレクトリ作成コマンドを2回。

mkdir lib
mkdir test

これで入れ物が作成されました!
階層はこんな感じになっているはずです。


次はコードとテストコードを作成します。

【ローカル】コードを書いてみよう

それではコードを書いていきます。

今回はRubyでよくみるFizzBuzz問題を例にしました。

FizzBuzz問題

入力された数字に対して以下の条件で出力を行いなさい
・3の倍数の時は「Fizz」を出力
・5の倍数の時は「Buzz」を出力
・3と5の倍数の時は「FizzBuzz」を出力

libのフォルダに移動してVimコマンドでコードを書きます。
libフォルダに〇〇.rbというRubyのコードが作成できれば方法は問いません。

cd ./lib 
vim fizzbuzz.rb

初歩的なコードですが、以前書いたものを書き直してみました。
※できれば皆さんで挑戦して書いてみてください。

def fizzbuzz(num)
  # 3と5の倍数の場合
  if (num % 3).zero? && (num % 5).zero?
    'FizzBuzz'
  # 3の倍数の場合
  elsif (num % 3).zero?
    'Fizz'
  # 5の倍数の場合
  elsif (num % 5).zero?
    'Buzz'
  # 数値を出力
  else
    num.to_s
  end
end

【ローカル】テストコードを書いてみよう

次にfizzbuzz.rbをテストするコードを書きます。
今回はRuby1.8以降同時に入っているMinitestを使ってテストを行います。

テストコードは以下のように書きました。

require 'minitest/autorun'
require '../lib/fizzbazz'

class FizzBuzzTest < Minitest::Test
  # テストメソッドを実行
  def test_fizzbuzz
    assert_equal '1', fizzbuzz(1)
    assert_equal '2', fizzbuzz(2)
    assert_equal 'Fizz', fizzbuzz(3)
    assert_equal '4', fizzbuzz(4)
    assert_equal 'Buzz', fizzbuzz(5)
    assert_equal 'Fizz', fizzbuzz(6)
    assert_equal 'FizzBuzz', fizzbuzz(15)
  end
end

Minitestでは 「test_」とついたテストメソッドを実行します。
メソッド内に書いた
assert_equal ’1’, fizzbuzz(1)は
fizzbuzzに1を引数として渡して実行、帰ってきた結果が’1’ならばTrueとするという意味です。

これで1,2,3,4,5,6,15,16を入れてテストします。
3と5と15の前後をチェックできているのでOKかと思います。

【ローカル】リモートリポジトリにプッシュする

作成した2つのディレクトリと中身のファイルを
最初に作成したリモートリポジトリにpush(アップロード)します。

actions-testまで移動してgitコマンドを実行しましょう。

cd ~/Dev/actions-test

git add コマンドでコミット()する対象リストに載せます。

git add ./lib
git add ./test

git commitコマンドでコミットします。
コミットにはコメントが求められるので、後ろに-m ‘コメント内容’をつけて
コミット内容のコメントを書きましょう。

git commit -m 'fizzbuzzコードとテストコードを追加'

-m無しで行っても結局コメントは書くことになるので、-mをつけることをお勧めします。

git push origin master

GitHubを見に行ってみましょう。
リモートのリポジトリに2つのディレクトリと
fizzbuzzのコードとテストコードが追加されていればOKです!

※私のコメントが揃っていないのはテストコードをコミットを忘れ、後から追加したからです。

これでようやくGitHubActionsを使うための準備が整いました!

それでは本編に戻ります。

https://azitama.com/?p=1734

ABOUT ME
あじたま
趣味:ゲーム 投資活動 泳ぐこと、食べること! ゲーム大好きエンジニア。 PC関連、ガジェットも大好き。 ゲームライフや投資記事を 日々綴っていきます。
YouTubeでも活動中!

チャンネル登録お願いします!!