.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) 


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



Source: https://habr.com/ru/post/J334576/


All Articles