洸樹(114)48この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。先日インフラエンジニアのためのCodeCommitで覚えるユニットテストを公開し、ローカルでユニットテストをして、CodeCommitにプルリクエストするまでの流れをご紹介しました。今回はCodeBuildとCodePipelineを使って、ユニットテストを自動実行する流れを紹介します。devブランチへのpushを検知して、ユニットテストを実行します。自動で実行する前に、手動でユニットテストを実行できるようにします。足し算、引き算が出来るcalc.pyとテストファイル(test_calc.py)を配置し、CodeCommitにPushします。詳しくはブログをご覧ください。test_calc.pycalc.py足し算関数(plus)と、引き算関数(minus)を持ちます。ytest_calc.py足し算関数と、引き算関数をテストします。足し算関数に3,5を与えて、3+5=8になるかを確認します。引き算関数には10,3を与えて、10-3=7になるかを確認します。7)ユニットテストの実行テストを実行すると2つの項目が実行され、"OK"になります。0.000sOK$CodeBuildでのユニットテスト実行ビルドスペックファイルを配置し、CodeBuildプロジェクトを作成します。開発用のdevブランチを作成します。master$ビルドスペックファイルの配置ビルドスペックファイル(buildspec.yml)をソースディレクトリのルートに配置します。files$ビルドスペックのサンプルはユーザーガイドに記載されています。tests.test_calcを記載します。artifactsでは、成果物(アーティファクト)を指定します。calc.pyオリジンへのpushdevブランチをオリジンにpushします。devCodeBuildプロジェクトの作成CodeBuildプロジェクトを作成します。3.6.5環境を指定しました。先ほど作成したYAMLの通りにビルドするということです。作成したプロジェクトを選択し、「ビルドの開始」を選択します。devブランチを選択します。ユニットテストを実行すると、フェーズごとの状態が表示されます。今回は全て成功しました。ビルドログには、ユニットテストの結果が表示されます。CodePipelineで自動実行CodePipelineは、変更が発生した時にCloudWatchイベントを使って、自動的にビルドを実行します。SourceステージにCodeCommit、BuildステージにCodeBuildを指定しました。かけ算機能の追加かけ算機能を追加し、テストを自動実行します。calc.pytimes関数を追加します。2つの引数をかけ算して、結果を返します。retrunのスペルが誤っていますが、そのままにしておきます。ytest_calc.pyかけ算関数をテストします。4×8=32になるかを確認します。32)かけ算関数のpushCodeCommitのdevブランチにpushします。devpushすると、ユニットテストが自動で実行されます。returnのスペルが誤っているので、失敗しました。詳細リンクを選択すると、CodeBuildコンソールに飛びます。CodeBuildコンソールでは、calc.pyの8行目に文法エラーがあることがわかります。ユニットテストのステータスコードが"1"のため、BUILDフェーズが失敗したことがわかります。1」コードの修正とpush「retrun」を正しく「return」に変更して、pushします。自動でユニットテストが行われ、グリーン(成功)しました。さいごにCodeBuildとCodePipelineを使って、devブランチへのpushを検知し、ユニットテストを自動実行しました。サービスやユニットテストの概要を掴むお手伝いができたのであれば、幸いです。〜ログ収集、監視、分析を触って体感しよう!〜」を開催しますお申し込み受付は終了しました。ありがとうございました。今後セミナーのお知らせを受け取りたい方は、こちらからご登録をお願いします。CAFEのサービスが「LINEアプリ」として利用できるようになりました。これまではLINEのトークから利用する形でしたが、LINEサービス内から利用できるようになりました。これまでより便利に、シームレスにご利用いただけます。Cafe300件のシェア(そこそこ話題の記事)インフラ未経験の私が内定から入社までに読んだ技術書11冊ブログ記事2020年01月16日Yui300インフラ未経験で入社した私がインフラを勉強するために読んだ技術書11冊を感想とともにまとめました。平野重利123Pythonで、標準入力を変換して標準出力に出すCLIプログラムのテンプレートをご紹介します。菊池修治47こんにちは、菊池です。勉強会#1に登壇しました。サーバのみならずネットワーク機器の仮想化も年々進んでいます。スペックに縛られないこととか、展開のしやすさとか初期考慮点が少なくなるのは嬉しいです。武田隆志1098このエントリは、2018年、2019年に公開したAWS全サービスまとめの2020年版です。これまではいくつかに分割して公開していましたが、1エントリにまとめてほしいという要望をもらっていたため、今年は1エントリに集約してみました。CAFEのサービスが「LINEアプリ」として利用できるようになりました。これまではLINEのトークから利用する形でしたが、LINEサービス内から利用できるようになりました。これまでより便利に、シームレスにご利用いただけます。Cafe300件のシェア(そこそこ話題の記事)インフラ未経験の私が内定から入社までに読んだ技術書11冊ブログ記事2020年01月16日Yui300インフラ未経験で入社した私がインフラを勉強するために読んだ技術書11冊を感想とともにまとめました。悠紀235ShifterはWordPress環境をサーバーレスで立ち上げ、静的なサイトを生成することができるサービスです。FAQサイトをサクッと作ってみました。Takumi227こんにちは。DA事業本部の春田です。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。