パッケージをビルドする

重要

Microsoft 365 のテスト ベースは、2024 年 5 月 31 日に終了 (EOL) に移行されます。 私たちは、可能な限りスムーズに移行するためのサポートとガイダンスを提供するために、各顧客と緊密に協力することにコミットしています。 質問、懸念事項、またはサポートが必要な場合は、 サポート リクエストを送信してください

パッケージは、アプリケーション バイナリとテスト スクリプトを含む .zip ファイルです。これは、テスト ベースを使用するための前提条件です。 このクイック スタートでは、アプリケーションですぐに使用できるテストを実行できる最初のパッケージをビルドする方法について説明します。

  • Out-of-Box (OOB) テストでは、アプリケーションのインストール、起動、終了、アンインストールが実行されます。 インストール後、起動終了ルーチンは、1 回のアンインストールが実行される前に 30 回繰り返されます。 OOB テストでは、パッケージの標準化されたテレメトリが提供され、Windows ビルド間で比較できます。

必要に応じて、 サンプル パッケージ をダウンロードして参照し、始めることができます。

フォルダー構造を作成する

ローカル コンピューターで、次のようにフォルダー構造を作成します。

パッケージの作成に使用されるフォルダー構造

次のフォルダーが使用されます。

  • App\bin: アプリケーションと依存関係バイナリを保存します。
  • App\scripts: アプリケーションをインストール、起動、閉じる、アンインストールするためのスクリプトを保存します。
  • App\logs: スクリプトはこのフォルダーにログを出力する必要があります。その後、テストが完了した後にログをダウンロードして分析できます。

バイナリ ファイルをコピーする

アプリケーションのインストール ファイルを App\bin にコピーします。 アプリケーションに依存関係がある場合は、最初にインストールする必要があります。 また、依存関係のインストール ファイルを App\bin にコピーします。

フォルダー内のアプリケーション ファイルの場所

PowerShell スクリプトを追加する

OOB テストを実行するには、PowerShell スクリプトを追加して、アプリケーションをインストール、起動、閉じ、アンインストールする必要があります。

注:

OOB テストでは、インストール、起動、および終了スクリプトが必要ですが、アンインストール スクリプトは省略可能です

スクリプトは、次のようにフォルダーに追加する必要があります。

フォルダー内の powershell スクリプト ファイルの場所

スクリプトには通常、次の動作が含まれます。

  • コマンドを実行して、アプリケーションをインストール/起動/閉じる/アンインストールします。 たとえば、アプリケーションが MSI ファイルの場合は、 msiexec を実行してインストールします。
  • インストール/起動/閉じる/アンインストール操作の結果を確認し、結果が予想される場合はゼロ終了コードを返します。 Test Base は、スクリプト実行が 0 以外の終了コードを返した場合にエラーとしてマークされます。
  • 十分なログを保存し、将来使用するために適切なログを保存します。

次の例を参照してください。 ファイルにコピーし、それに応じて変更を加えるだけです。

インストール スクリプトの例 (App\scripts\install\job.ps1):

        push-location $PSScriptRoot
        $exit_code = 0
        $script_name = $myinvocation.mycommand.name
        $log_dir = "$PSScriptRoot\..\..\logs"
        $log_file = "$log_dir\$script_name.log"

        if(-not (test-path -path $log_dir )) {
            new-item -itemtype directory -path $log_dir
        }

        Function log {
           Param ([string]$log_string)
           write-host $log_string
           add-content $log_file -value $log_string
        }

        log("Installing TestBaseM365 Digital Clock")
        push-location "..\..\bin"
        if ([Environment]::Is64BitProcess) {
            $installer_name = "TestBaseM365DigitalClock.msi"
        }
        else {
            $installer_name = "TestBaseM365DigitalClock.msi"
        }
        $arguments = "/i "+$installer_name+" /quiet /L*v "+"$log_dir"+"\atp-client-installation.log"

        $installer = Start-Process msiexec.exe $arguments -wait -passthru
        pop-location

        if ($installer.exitcode -eq 0) {
            log("Installation successful as $($installer.exitcode)")
        }
        else {
            log("Error: Installation failed as $($installer.exitcode)")
            $exit_code = $installer.exitcode
        }

        log("Installation script finished as $exit_code")
        pop-location
        exit $exit_code

起動スクリプトの例 (App\scripts\launch\job.ps1):

        push-location $PSScriptRoot
        $exit_code = 0
        $script_name = $myinvocation.mycommand.name
        $log_dir = "$PSScriptRoot\..\..\logs"
        $log_file = "$log_dir\$script_name.log"

        if(-not (test-path -path $log_dir )) {
            new-item -itemtype directory -path $log_dir
        }

        Function log {
           Param ([string]$log_string)
           write-host $log_string
           add-content $log_file -value $log_string
        }

        log("Launch TestBaseM365 Digital Clock")

        $PROCESS_NAME = "DigitalClock"
        $exePath = "C:\Program Files\Test Base M365\DigitalClock\DigitalClock.exe"

        Start-Process -FilePath $exePath

         if (Get-Process -Name $PROCESS_NAME) {
                log("Launch successfully $PROCESS_NAME...")
                $exit_code = 0
         }
         else {
            log("Not launched $PROCESS_NAME...")
            $exit_code = 1
         }

        log("Launch script finished as $exit_code")
        pop-location
        exit $exit_code

zip ファイルに圧縮する

スクリプトとバイナリが準備されたら、フォルダーを zip ファイルに圧縮します。 [アプリ] フォルダーを右クリックし、[ ZIP ファイルに圧縮] を選択します。

zip ファイルに圧縮する

パッケージをローカルで確認する (省略可能)

zip パッケージをビルドしたら、テスト ベース アカウントにアップロードできます。

ただし、アップロードする前にスクリプトが適切に動作するようにテストをローカルで実行することをお勧めします。 ローカル テストを使用すると、問題をすばやく特定し、アップロード プロセスを高速化できます。 ローカルで確認するには、次の手順に従います。

  1. VM の準備 (仮想マシン)

    クリーン Windows 環境は現在、各テストに必要であるため、このローカル テストには仮想マシンを使用することをお勧めします。 Azure 上に Windows VM を簡単に作成できます (クイック スタート: Windows 仮想マシン)、テストに適した Windows バージョン (イメージ) (Windows 10 Pro、バージョン 21H2 など) を選択できます。

  2. VM にパッケージをコピーする

    パッケージ ファイルを VM にコピーする方法は多数あります。 Azure VM を使用している場合は、次の操作を選択できます。

    このテスト用の特定のフォルダーを作成し、このフォルダーの下にパッケージ ファイルをコピーできます。 たとえば、 C:\TestBase です。

  3. パッケージをテストする

    Windows PowerShell開き、パッケージを含むディレクトリに切り替えて (例: )、cd C:\TestBaseパッケージでテストの実行を開始します。

    1. パッケージ ファイルを抽出します。

      Expand-Archive -LiteralPath C:\TestBase\App.zip -DestinationPath C:\TestBase
      
    2. インストール スクリプトを実行します。

      C:\TestBase\App\scripts\install\job.ps1
      
    3. 必要に応じて VM を再起動します。

    4. 起動スクリプトを実行します。

      C:\TestBase\App\scripts\launch\job.ps1
      
    5. close スクリプトを実行します。

      C:\TestBase\App\scripts\close\job.ps1
      
    6. アンインストール スクリプトを実行します (ある場合)。

      C:\TestBase\App\scripts\uninstall\job.ps1
      

各手順の後、スクリプトに問題がある場合は、チェックできます。 すべてのスクリプトが期待どおりに実行される場合は、パッケージをテスト ベース アカウントにアップロードする準備が整います。

次の手順

パッケージをアップロードする