この记事では,CircleCIの视窗执行人を使用して,ASP.NET核心で作成された简単な电卓アプリケーションを的Windows仮想マシンでビルドしテストする方法を说明します。ここでは,电卓アプリケーション用のコンフィグファイルを题材に,关连する部分を详しく说明していきます。

ASP.NETは,微软が开発したオープンソースのサーバーサイド网站アプリケーションフレームワークです名.webおよびアプリケーション开発に使用できるフレームワークは多くあり,それぞれ异なる机能と利点がありますが,ASP.NETを使用すると,开発者は,视窗上で稼働する网站アプリケーション,网络サービス,および动的なコンテンツを组み入れた的Webサイトを容易に开発することができます.ASP.NET核心はクロスプラットフォームなASP.NETの强化版として开発されたもので,Windows中,MACOS,Linux的を含むすべての主なコンピューティングプラットフォームで実行することができます。

さて,CircleCIの视窗执行人には,以下のような特徴があります。

  • 泊坞窗引擎 - 企业により多克ベ金宝博娱乐官网网址ースの视窗ワークフローを実行可能。
  • 的Windows VM环境によるビルドの完全な分离。
  • デフォルトのシェルはPowerShell.BashおよびCMDもコンフィグでの设定により使用可能。
  • キャッシュ,ワークスペース,ジョブの承认,制限付きコンテキストなどCircleCIの机能が的Windows环境内ですべて利用可能。

前提条件

この记事では,下记がすでに准备されていることを前提とします。

アプリケーションの详细

このチュートリアルでは,简単な电卓アプリケーションを使用します。ソースコードはここからフォークできます。以下は,アプリケーションのディレクトリ构造です。

。├──Dockerfile├──许可├──README.md├──SimpleCalc│├──控制器│├──模型│├──的Program.cs│├──服务│├──SimpleCalc.csproj│├──Startup.cs│├──视图│├──appsettings.Development.json│├──appsettings.json│└──wwwroot的├──SimpleCalc.sln└──测试└──SimpleCalc.Tests 8个目录,9档

プロジェクトをフォークしたら,「CircleCIでビルドを设定」に指示に従って,プロジェクトをCircleCIに接続します。

CircleCIの构成

CircleCIを构成するために,プロジェクトのルートにある.circleciフォルダにconfig.ymlファイルを追加します。このプロジェクト用のコンフィグファイルは次のとおりです。

版本:2.1宝珠:窗口:circleci/windows@2.2.0职位:测试:说明:安装并运行应用程序的测试执行:名称:Windows /默认步骤: - 结帐 -  restore_cache:键: -  DOTNET  - 包-V1  -  {{校验 “SimpleCalc / SimpleCalc.csproj”}}  - 运行:名称: “安装项目依赖” 命令:dotnet.exe恢复 -  save_cache:路径: -  C:\用户\ circleci \ .nuget \包键:DOTNET-包-V1-{{ checksum "SimpleCalc/SimpleCalc.csproj" }} - run: name: "Run Application Tests" command: dotnet.exe test -v n --results-directory:test_coverage --collect:"Code Coverage" - run: name: "Print Working Directory" command: pwd - store_artifacts: path: C:\Users\circleci\project\test_coverage build: description: Build application with Release configuration executor: name: windows/default steps: - checkout - run: name: "Build Application according to some given configuration" command: dotnet.exe build --configuration Release workflows: test_and_build: jobs: - test - build: requires: - test

それでは,このコンフィグを详しく见ていきましょう。

OS /环境とランタイムの定义

宝珠を使用するため,コンフィグのバージョンは2.1とします。宝珠は,ジョブ,コマンド,遗嘱执行人などのコンフィグを共有できるパッケージです。このプロジェクトでは,视窗球を使用しています。この宝珠は,ユニバーサル的Windowsプラットフォーム(UWP)アプリケーションや.NET実行可能ファイル,.NET框架を使用した的Windowsのみで动作するアプリケーションのプロジェクトといった的Windowsプロジェクトをビルドするためのツールをユーザーに提供します。

版本:2.1宝珠:窗口:circleci/windows@2.2.0

このコンフィグでは,测试bulidの二つのジョブが定义されています。そして,构建ジョブを実行するためには,すべてのテストにパスする必要があります。この顺序を构成するために,CircleCIの机能であるワークフローを利用しています。ワークフローとは,复数のジョブの実行顺序を定义する机能です。ワークフローの宣言は,サンプルコンフィグファイルの最后にあります。

工作流程:test_and_build:工作: - 检验 - 构建:要求: - 测试

テストのセットアップと実行

视窗执行人には时,Visual Studio 2019やその他の多くの开発ツールにプリロードされています。ここではデフォルトのPowerShell的シェルを使用するため,使用するシェルの宣言はしていません。

测试:说明:安装并运行应用程序的测试执行:名称:Windows /默认

ステップには,ジョブ中に実行される実行可能なコマンドの一覧が宣言されています。下记のステップでは,コードをチェックアウトし,プロジェクトの依存关系をリストアします。

步骤: - 结帐 -  restore_cache:键: -  DOTNET  - 包-V1  -  {{校验 “SimpleCalc / SimpleCalc.csproj”}}  - 运行:名称: “安装项目依赖” 命令:dotnet.exe恢复 -  save_cache:路径: -C:\用户\ circleci \ .nuget \包键:DOTNET-包-V1  -  {{校验 “SimpleCalc / SimpleCalc.csproj”}}

利用可能なキャッシングオプションとその使用方法については,CircleCIのキャッシュに关するドキュメントで详细に说明されています。dotnet.exe恢复コマンドは,的NuGetを使用して,依存关系を复元するほか,プロジェクトファイルで指定されているプロジェクト固有のツールを复元します。デフォルトでは,依存关系の复元とツールの复元は并行して実行されます。

実际のソフトウェア开発に必要不可欠な行程が単体テスト(ユニットテスト)です。単体テストとは,ソースコードの个々のユニット(単体)をテストし,使用に适しているかどうかを判断するソフトウェアテストの手法です。単体テストからコードカバレッジを收集することもできます。ここでユニットとは,テスト可能な最小のソフトウェアの単位です。“dotnet.exe测试”は,単体テストを実行する.NETのテストドライバです。このプロジェクトでは,的xUnitテストフレームワークを使用しています。すべてのテストが成功した场合,テストドライバは终了ステータスとして0を返します。それ以外の场合,つまり,いずれかのテストが失败すると,1を返します。テストドライバと単体テストに必要なライブラリは的NuGetパッケージとしてパッケージ化され,プロジェクトの通常の依存关系としてリストアされます。

- 运行:名称:“运行应用测试”命令:dotnet.exe测试-vň--results目录:test_coverage --collect:“代码覆盖”

ここでは,テストを実行して收集されたカバレッジをアーティファクトとしてtest_coverageフォルダに保存しています.ASP.NET核心プロジェクトのコードカバレッジレポートは,标准设定のままでは回收されません。

-  store_artifacts:路径:C:\用户\ circleci \项目\ test_coverage

プロジェクトのビルド

テストの正常実行に成功したら,プロジェクトをビルドします。コンフィグではビルド用に建立ジョブを定义しています。このプロジェクトで利用可能なビルドオプションは次のとおりです。

  • リリース
  • デバッグ以下のコンフィグは,リリースを选択した场合を示しています。
编译:说明:构建应用程序与发布配置执行人:名称:Windows /默认步骤: - 结帐 - 运行:名称:“构建应用程序根据某个给定的配置”命令:dotnet.exe构建--configuration发布

.NET核心2.0以降のSDKでは,“DOTNET新”,“DOTNET编译”,“DOTNET运行”などリストアが必要なすべてのコマンドで“DOTNET恢复”が暗黙的に実行されるため,“DOTNET恢复”を明示的に実行する必要はありません。

结论

CircleCIで的Windows执行人を使用すると,ASP.NET核心アプリケーションを简単にビルドおよびテストできます.CircleCIが承认している视窗球は,CircleCIによってテストされ,コミュニティによって検证されており,安心して利用できます。お使いのコンフィグで使用できる圆球の详细については,宝珠レジストリを参照してください。

宝珠によって,以下ような时间のかかる作业を省略できます。

  • 视窗仮想マシンの调查,テスト,セットアップ
  • vs2019,的NuGetなどの开発ツールのインストール
  • PowerShell的などの的Windowsツールの使用方法の习得

ORBを使用すると,コンフィグファイルの行数も削减できます。このプロジェクトのコンフィグファイルのコードはわずか42行であり,简単に理解でる上に,高い保守性を実现しています。


多米尼克Motuka氏はAndela社のDevOps的エンジニアであり,コンフィグ管理,CI / CD,DevOps的プロセスを活用した,AWSおよびGCPの本番环境へのデプロイのサポート,自动化および最适化について4年以上の実务経験があります。