.NET Core + PostgreSQLプロジェクト用にTravis CIを構成する方法

PostgreSQLを使用する.NET CoreプロジェクトのTravis CIサービスでユニットテストを自動的に実行するように構成する方法について説明します。







この記事は、クイックスタートの例として使用できます。













私は趣味のプロジェクトを持っています-.NET Coreへのバージョン管理されたデータベースの移行のためのツールです。 彼は、PostgreSQLを含むいくつかのDBMSを操作する方法を知っています。 プロジェクトにはいくつかのテスト( xUnit )があり、これらのテストもPostgreSQLが動作する必要があります。







Travis CIについて多くのことを聞き、テストを自動的に実行するように設定することを長い間望んでいましたが、次の2つのことが私を止めました。









半日ドキュメントの勉強と実験に費やしたので、私はテストをセットアップし、それについてお話したいと思います。







Travis CIとは



Travis CIは、Githubのプロジェクト向けの継続的な統合サービスです。 リポジトリに何かをコミットすると、Travis CIはさまざまな便利なアクションを自動的に実行できます。 たとえば、単体テストを実行してlintersコーディングできます。 これらの便利なアクションを「ビルド」(「ビルド」)と呼びます。







リポジトリ用にTravis CIを設定するには、Travis CI Webインターフェースでリポジトリアドレスを指定し、プロジェクトルートにビルド設定を.travis.yml



ファイルを配置する.travis.yml



ます。







Travis CIを構成する



最初に行うことは、GitHubアカウントを使用してhttps://travis-ci.orgにログインすることです。 その後、すべてのリポジトリのリストが表示されます。 Travisとの統合を有効にするリポジトリの反対側のスイッチをクリックします。













次に、選択したリポジトリの設定に移動します。 ここで、アセンブリを実行する必要があるケースを構成できます。 リポジトリ内のすべてのプッシュ操作で、またプル要求を作成または変更するときに、アセンブリを実行する必要があることを指摘しました。 さらに、 .travis.yml



構成ファイルがリポジトリのルートにある場合にのみアセンブリを開始する必要があることを指摘しました。













.NET Coreの.Travis.ymlの例



次のステップは、ビルド設定を.travis.yml



ファイルをリポジトリに追加することです。 .NET Coreでプロジェクトをビルドするには、 .travis.yml



ファイルは次のようになります。







 language: csharp sudo: required dist: trusty mono: none dotnet: 2.0.0-preview2-006497 before_script: - dotnet restore script: - dotnet test ./ThinkingHome.Migrator.Tests -c Release -f netcoreapp2.0
      
      





ここに何が書かれているか見てみましょう:









設定ファイルをリポジトリにコミットする前に、 script



セクションとbefore_script



セクションのコマンドがエラーなしでローカルにbefore_script



れることを確認してください。 その後、.travis.ymlファイルをコミットし、変更をリモートサーバーにプッシュします。







 git add .travis.yml git commit -m "Add travis config file" git push
      
      





数秒後、Travisが変更を確認し、アセンブリを開始したことがわかります。 コンソールに表示されたすべてのものを含む、アセンブリに関する詳細情報を表示できます。 .NET Coreがインストールされ、テストが開始されたことがわかります。













また、テストが落ちたこともわかります 彼らは利用できないデータベースにアクセスします。



















PostgreSQL接続



PostgreSQLをアセンブリに接続しましょう。 これを行うには、 postgresql



エントリを.travis.yml



services



セクションを.travis.yml



に追加し、 .travis.yml



セクションのpsql



ユーティリティを使用してテスト用のデータベースを作成するコマンドを追加します。







 services: - postgresql before_script: - psql -c "CREATE DATABASE migrations;" -U postgres ...
      
      





デフォルトでは、パスワードなしでpostgres



ユーザーとして接続できるpostgres



データベースが使用可能です。 これらのデフォルト設定に依存しないように、テスト用に個別のユーザーとデータベースを作成します。 新しいデータベースで何かを行う必要がある場合は、 -d



パラメーターでその名前を指定することを忘れないでください。







.travis.yml



ファイルの全文.travis.yml



次のとおりです。







 language: csharp sudo: required mono: none dotnet: 2.0.0-preview2-006497 dist: trusty services: - postgresql before_script: - psql -c "CREATE DATABASE migrations;" -U postgres - psql -c "CREATE USER migrator WITH PASSWORD '123';" -U postgres - psql -c 'CREATE SCHEMA "Moo" AUTHORIZATION migrator;' -U postgres -d migrations - dotnet restore script: - dotnet test ./ThinkingHome.Migrator.Tests -c Release -f netcoreapp2.0
      
      





変更されたファイルをコミットし、リモートサーバーにプッシュします。 多田!!! 今回はテストが成功しました!













おわりに



いいね! PostgreSQLを使用して、.NET Coreプロジェクト用にTravis CIを構成する方法を見つけました。 これで、 Shields.ioサービスを使用して最後のビルドの結果を示すタグをプロジェクトのreadmeに追加できます。







 [![Travis](https://img.shields.io/travis/thinking-home/migrator.svg)](https://travis-ci.org/thinking-home/migrator)
      
      











ご清聴ありがとうございました!








All Articles