Microsoft Test Manager 2015 を使い始めて、2 つのテスト ケースを作成しました。
1 つ目は、トレイ アイコンをクリックし、そこからエントリを選択することです。これは正常に機能します。
2 番目のケースはもう少し複雑です。WPF ウィンドウでフォームに入力し、いくつかのボタンをクリックしたかったのです。
録音は問題なくできましたが、再生がまったくできません。TabItem の選択から開始し、前に選択した TabItem 内にある別の TabItem を選択し、テキスト フィールドに入力してボタンを押し、2 つのメッセージ ダイアログを確認します。
問題は、TestRunner が私のコントロールを見つけられないことです。正しい TabItem を選択し、「ここにテキストを入力」ステップの 1 つを実行しようとしても、時間がかかり、大まかに翻訳すると、選択したステップの再生ができなかったという例外が顔にスローされます。検索プロパティ (?) に一致するコントロールが見つからなかったため、完了できませんでした。次に、リストが続きます。
TechnologyName: 'UIA'
FrameworkId: 'WPF'
ControlType: 'TabPage'
AutomationId: 'sometabname'
それはすべて正しいです。別のテスト ステップを実行しようとすると、基本的に同じことが表示されますが、「ControlType: TabPage」ではなく「ControlType: Edit」と表示されます。
ここから先に進む方法がわかりません。私はいくつかの検索を行いましたが、見つけたのはUIAutomationの構成/セットアップに関する質問だけでしたが、私が知る限り、MTMで直接影響/制御することはできません.
編集
テストの「ケース」を単純化し (ウィンドウ/最初のグリッドに直接配置されている中止ボタンをクリックするだけ)、mtm.exe.config ファイルを編集し、トレース/ログを有効にした後、それぞれのログファイルから次の情報を取得しました。
mtm.exe, Playback - [WARNING] Internal warning: Target element "[UIA]FrameworkId='WPF' && ControlType='Button' && AutomationId='closeWithoutSave'" was not found, so all intermediate elements were ignored. An incorrect element that matches target element Id can be found as the result. Verify that all intermediate elements in QueryId have valid and unique Ids
mtm.exe, Playback - [WARNING] Internal warning: Search failure: [UIA]FrameworkId='WPF' && ControlType='Button' && AutomationId='closeWithoutSave' | Performed (4) searches, UI element not found
mtm.exe, Playback - {1} [FAILED] Function ElementFetcher::FindScreenElement failed to locate UI element (;[UIA]FrameworkId='WPF' && ControlType='Button' && AutomationId='closeWithoutSave') (Das angegebene Objekt wurde nicht gefunden.)
ここで奇妙なのは、そのボタンに Automation.AutomationID を設定しても失敗したことです。また、それが正しいかどうかはわかりませんが、そのボタンを持つウィンドウの名前/オートメーションIDが検索に含まれていないようです。その時点で、アプリケーションで 2 つのウィンドウが開いていたので、それが問題であると想像できました。