既知の問題 - .NET WPF

オブジェクトの認識

  • オブジェクト・スパイ(.NET アドインがロードされている場合は .NET Windows フォーム・スパイ)を使って WPF オブジェクトを調査するときに、[記録と実行環境設定]ダイアログ・ボックスが調査対象の WPF アプリケーションを記録するように設定されていない場合、UFT One はそのオブジェクトを標準 Windows オブジェクトとして認識します。

    回避策:該当の WPF アプリケーションを閉じます。UFT One で[記録と実行環境設定]ダイアログ・ボックスを開き([記録]>[記録と実行環境設定])、[Windows アプリケーション]タブで[開いているすべての Windows ベース アプリケーションでテストを記録して実行する]オプションを選択します。WPF アプリケーションを再び開き、調査を実行します。

  • UFT One は、テキスト・ブロック要素を、WPF オブジェクト(リスト、ツリービュー、テーブルなど)の子オブジェクトとして扱いません。このため、これらの要素は ChildObjects ステートメントで返されず、WPF オブジェクトとその子を学習するように選択しても、テスト・オブジェクトとして学習されません。

    WPF オブジェクトのテキスト・ブロック要素を操作するには、GetItem() または GetItemProperty() ステートメントを使用します。

  • Microsoft Windows 7 オペレーティング・システム上で WpfComboBox コントロールを調査する場合、正しい all items プロパティの値を表示するには、最初にコンボ・ボックスを展開および折りたたむ必要があります。

  • アプリケーションの .NET Windows Forms オブジェクトの完全なタイプ名を確認するには、オブジェクト・スパイで SwfTypeName を確認します。

    また、次の構文を使ってステートメントを実行することにより、選択したオブジェクトの基本タイプのリストを表示することもできます。

    MsgBox <SwfTestObj>(<descr>).GetROProperty("SwfTypeNames")  

    SwfTestObj(<descr>) は、チェック対象のテスト・オブジェクトです。このステートメントを実行すると、メッセージ・ボックスが開き、リストの一番上に実際のクラスが表示され、その下に基本クラスが表示されます。

  • Windows マシンの地域設定が、言語パックがインストールされていない形式(言語)に設定されている場合、UFT One は WPF オブジェクトを記録、実行、またはスパイできません。

先頭に戻る

記録

  • ステップを低レベル記録で記録すると、Windows Presentation Foundation テスト・オブジェクトの標準の記述プロパティに定数値が設定されません。これにより、実行セッション中の記述プロパティ値が異なるようになり、これらのオブジェクトに対するステップが失敗する可能性があります。

  • アプリケーション内の動的に変化するオブジェクトを記録する場合、UFT One は、変化する前の元のオブジェクトではなく、変化した後のオブジェクトのオブジェクト・プロパティを記録します。そのため、このオブジェクトを使用する実行セッションは失敗します。

    回避策:オブジェクトの記述をエディタで手動で変更します。

先頭に戻る

開いている .NET WPF アプリケーションの認識

.NET WPF テスト実行の合間に UFT One を再起動した場合、再起動後にテストをもう一度実行すると、UFT One は開いているアプリケーションを認識しない場合があります。

エラーを回避するには、UFT One マシンに次のレジストリ定義を追加します。

  1. [HKEY_CURRENT_USER\Software\Mercury Interactive\QuickTest Professional\MicTest\Packages\WpfPackage\Settings] レジストリ・キーに移動します。

  2. ProcNoCleanup という名前の新しいサブキーを追加します。

  3. [HKEY_CURRENT_USER\Software\Mercury Interactive\QuickTest Professional\MicTest\Packages\WpfPackage\Settings\ProcNoCleanup] キーに空の文字列値を追加します。この値の名前は、アプリケーションの名前にする必要があります。

    例:"MyApp.exe"=""

注意: 後方互換性を考慮して、一部のレジストリ・キーには以前の会社のブランドが意図的に使用されています。

ヒント: 複数のプロセスでこの機能を有効にするには、両方のキーの下に同じ形式の行を追加します。

先頭に戻る

.NET テスト・スイートの実行

Jenkins からローカルに保存された .NET テスト・スイートを実行すると、UFT One が予期しない動作をすることがあります。

先頭に戻る