Travis-CIを使用した.NET Coreの継続的インテグレーションのクイック設定。 とても短い

kdpv


いくつかのリクエストにより、継続的インテグレーションのセットアップに関する前回の記事の非常に短い絞り込みを公開していますが、「C#のチェックリストとしても」です。 同時に、トラビスにいくつかの選択肢を追加しました。


読書は3分以内で完了します。興味のある人には猫の下でお願いします。


.NET Core SDKをインストールします 。 新しいリポジトリとプロジェクトを作成します。


dotnet new sln --name CIDemo dotnet new web --name web dotnet sln CIDemo.sln add web/web.csproj 

.travis.ymlファイルをプロジェクトのルートフォルダーに追加します。


 language: csharp dotnet: 2.1.4 sudo: false env: global: - DOTNET_CLI_TELEMETRY_OPTOUT: 1 script: - dotnet build CIDemo.sln -c Release 

.travis.yml-Travisサービスファイル。環境設定、変数、およびコマンドが含まれています。 ドキュメントはこちら

Travisにログインし、リポジトリへのアクセスを許可します。 サーバーに変更を注ぎます。


良いビルド:
トラビスok画像


そして、ローカルですべてが私のために働く 良くないビルド:
トラビスの失敗画像


テストプロジェクトを追加する


 dotnet new xunit --name test dotnet add test/test.csproj package coverlet.msbuild -v 1.2.0 dotnet sln CIDemo.sln add test/test.csproj 

xunitはテスト用のフレームワークであり、 coverlet.msbuildはコードカバレッジレポートを生成するためのツールです

クラスを追加して、そのためのテストを作成します。


例:

`` `c#
システムを使用して;


名前空間ウェブ
{
パブリッククラスIdProvider
{
パブリックGuid NewId()
{
return Guid.NewGuid();
}
}
}


 ```c# using web; using Xunit; namespace test { public class IdProviderTest { [Fact] public void NewIdShouldReturnUniqueValues() { var idProvider = new IdProvider(); var id1 = idProvider.NewId(); var id2 = idProvider.NewId(); Assert.NotEqual(id1, id2); } } } 

スクリプトセクションにコマンドを追加してテストを実行します


  - dotnet test -c Release --no-build test/test.csproj /p:CollectCoverage=true /p:CoverletOutputFormat=opencover 

最小コードカバレッジレベルは、/ pフラグを使用して設定されます。しきい値= TRESHOLD_LVL

.travis.ymlに新しいセクションを追加します


  after_script: - bash <(curl -s https://codecov.io/bash) 

チームはテスト結果をcodecovに送信します。 ドキュメントはこちらです。

にログイン https://codecov.ioにアクセスして、リポジトリへのアクセスを許可します。


codecovの結果:
Codecovレポート画像


すべて、CIが構成されています。


.travis.ymlの最終バージョン


 language: csharp dotnet: 2.1.4 sudo: false env: global: - DOTNET_CLI_TELEMETRY_OPTOUT: 1 script: - dotnet build CIDemo.sln -c Release - dotnet test -c Release --no-build test/test.csproj /p:CollectCoverage=true /p:CoverletOutputFormat=opencover after_script: - bash <(curl -s https://codecov.io/bash) 

アナログトラビス



Codecovの代わりに、テストを使用してテストを操作できます。 https://coveralls.io/ オープンソースプロジェクトでも無料です。


便利なリンク



CIのその他の代替ソリューションおよび無料ソリューションを知っている場合は、記事に追加します。


どうもありがとう。 私はそれが簡潔に、そして要点まで判明したことを望みます。



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


All Articles