次の方法で共有


XUser のヘッドレス自動化

テストの場合、ユーザーのゲームへの追加を自動化する場合があります。 Microsoft Game Development Kit (GDK) では、ゲームが XUserAddAsync を呼び出すときにのみユーザーが追加されます。 自動化に関して、この関数には 2 つの主な制限があります。

  • AddDefaultUserSilently フラグを使用して XUserAddAsync を呼び出すと、UI が表示されなくなります (オートメーションに役立ちます)。 ただし、ゲームを開始したユーザーのみがアクセスできます。 このフラグを使用して API を繰り返し呼び出しても、結果は変わりません。 同じユーザーに新しいハンドルを取得し続けるだけです。
  • AddDefaultUserSilently フラグなしで XUserAddAsync を呼び出すと、UIが表示されボタンがクリックされるまで待機します。 これにより自動化が崩れます。

テスト コードにユーザーを追加する自動化を支援するために、Microsoft Game Development Kit (GDK) は、ユーザー入力を必要とする UI 表示なしでユーザーを追加できるヘッドレス オプションをオンにするサポートを備えています。 次の手順は、基本的なアプローチの概要を示しています。

  1. サインインしているユーザーをコンソールに追加するには、開発者は xbuser (NDA トピック)認可が必須です コマンド ライン ツールを signin オプションと共に使用できます。 各ユーザーに対してこの手順を繰り返します。
  2. ゲームにユーザーを追加するときに通常表示される UI を非表示にするには、以下に示すように、開発者はHeadlessXuser オプションで xbconfig (NDA トピック)認可が必須です コマンド ライン ツールを使用できます。
    xbconfig HeadlessXUser=true
    
  3. ゲームを起動します。
  4. ゲームに参加すると、AddDefaultUserSilently フラグを持たない XUserAddAsync を呼び出すと、ゲームによって関連付けられた未処理の XUserHandle オブジェクトを持たないコンソールにサインインした最初のユーザーが返されます。
  5. ゲームが XUserAddAsync を呼び出し続けると、最終的にはコンソールにサインインしているユーザーの数が使い果たされます。 その後、XUserAddAsyncE_ABORTを返します。 これは、ユーザーがコンソールへのサインインをキャンセルした場合 (または UI からバックアウトされた場合) に XUserAddAsync が返したエラーとまったく同じです。
  6. テスト目的の場合、コンソールにサインインしたテスト アカウントの数を知りたい場合があります。 これを容易にするために、CreateProcess を呼び出し、list オプションを指定して wduser コマンド ライン ツールを起動します。