最近のアクセス:
ユニットテストのための CI/CD の統合

GeneXus を使用した一般的なアジャイル開発サイクルで説明したとおり、ソフトウェア業界では、一連の作業を自動化することで品質の向上と DevOps プラクティスの採用を実現しています。継続的インテグレーション (Continuous Integration = CI) は、GXserver と GXtest で作業を適切に開始するための重要なステップです。
継続的インテグレーションとは、GXserver のナレッジベースを一元管理しているリポジトリに開発者が変更を加えるたびに、コードによっていくつかの自動化された機能がトリガーされ、新しい変更がほかの内容と競合することなく新しいバージョンがビルドされることを意味します。また、コミットの参照が不足していないこと、開発した環境とまったく異なる環境でもビルドが成功することが確認されます。プロセスにこのステップがあると、「自分のマシン上では動作/ビルド可能」という、開発につきものの問題を回避できます。理論的には、CI は開発者がコミットするたびに統合が行われることを意味します。自身があまり頻繁に行いたくない場合も、アプリケーションの状態に関するフィードバックを頻繁に (おそらく毎日) 受け取ることがあります。これが、継続的に統合されていることを表しています。
通常、CI ツールはほかのものに依存しないため、Windows プラットフォームで msbuild.exe を使用して、GeneXus に任意の CI ツールを統合することができます。ここでは、Jenkins CI を使用した例を示します。
ナレッジベースのタスクの処理に OpenKB、BuildAll、RebuildAll などの GeneXus のタスクを使用したり、GXserver の処理にチーム開発のタスクを使用したりするのと同じように、ユニットテストを実行するには、追加のタスクやステップを呼び出す必要があります。これらのタスクに関する情報は、次のトピックで確認できます: テストの実行のための MSBuild タスク

ナレッジベースですべてのユニットテストを実行する方法

GXtest.msbuild: ユニットテストの実行用に作成する MSBuild ファイルの名前です。
まず、使用予定の事前定義済みタスクを含む 2 つの MSBuild プロジェクトをファイルにインポートします。これらのプロジェクトは、GeneXus.Tasks.targets と GXtest.targets です。
次に MSBuild ファイルの例を示します:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">    
  <Import Project="$(GX_PROGRAM_DIR)\GeneXus.Tasks.targets"/>    
  <Import Project="$(GX_PROGRAM_DIR)\GXtest.targets"/>

  <Target Name="RunAllTests">
    <OpenKnowledgeBase Directory="$(KBPath)"/>
    <SetActiveEnvironment EnvironmentName="$(EnvironmentName)"/>
    <RunTests Type="$(TestType)" ServerUserName="$(GXUser)" ServerPassword="$(GXPass)"/>
    <CloseKnowledgeBase/>
  </Target>
</Project>
このファイルを適切に設定したら、次のコマンドを使用してすべてのユニットテストを実行できます。
MSBuild.exe /t:RunAllTests /p:KBPath="C:\Models\KbTests" /p:EnvironmentName="CSharpWeb" /p:TestType="Unit" /p:GXUser="local\admin" /p:GXPass="password" $env:GX_PROGRAM_DIR"\GXtest.msbuild"

ナレッジベースのテストリストを実行する方法

[ すべてのテストを実行 ] タスクと同様に、MSBuild ファイルを次のように設定します。
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">    
<Import Project=".\GeneXus.Tasks.targets"/>    
<Import Project=".\GXtest.targets"/>

<Target Name="RunTestsList">
    <OpenKnowledgeBase Directory="$(KBPath)"/>
    <SetActiveEnvironment EnvironmentName="$(EnvironmentName)"/>
    <RunTests TestObjects="$(TestObjects)" ServerUserName="$(GXUser)" ServerPassword="$(GXPass)"/>
    <CloseKnowledgeBase/>
</Target>
</Project> 
このファイルを適切に設定したら、次のコマンドを使用して特定のユニットテストを実行できます。
MSBuild.exe /t:RunTestsList 
/p:KBPath="C:\Models\KbTests"
/p:EnvironmentName="CSharpWeb"
/p:TestObjects="UnitTest1;UnitTest2;UnitTest3"
/p:GXUser="local\admin" /p:GXPass="password"
$env:GX_PROGRAM_DIR"\GXtest.msbuild"
Test Suite オブジェクトで任意の種類のテストをグループ化し、名前を指定して MSBuild から実行できます。

MSBuild の例 
 




サブページ
Created: 19/08/09 02:01 by Admin Last update: 23/04/24 18:07 by Admin
カテゴリ
Powered by GXwiki 3.0