2

関数ライブラリ(テストのリソース設定で参照されている)の1つに関数を挿入しました。次のようになります。

Public Function NWRecoverOnRunStep (AObject,AMethodName,AArguments,AResult)
  Print "NWRecoverOnStep MethodName='" & AMethodName & "' Result=" & AResult
End Function

(明らかに、私は探索段階にあります;)

また、「エラー時にNWRecoverOnRunStepを呼び出す'オブジェクトが見つかりません'」というリカバリシナリオを作成し、それをリカバリシナリオファイルとして保存して、そのファイルをテストに関連付けました。

テストを実行すると、QTPは「ライブラリファイルのエラー」、blabla、および詳細の下に「エラー」と表示します。

File: [QualityCenter\Resources] mylib.qfl

line (1): 'Dim CaptchaCheckActive '.

Description: Name redefined

(私はすべてのライブラリで明示的なオプションを使用しています。)(そして:もちろん、「Dim CaptchaCheckActive」はライブラリで定義された最初のグローバル変数であり、ライブラリmylib.qflにはこの宣言とリカバリハンドラの両方が含まれています。)

Q:これは、ライブラリがテストに2回リンクされているためです。1回は「従来の」関数ライブラリであり、もう1回は回復シナリオ関数を含むためです。

代替Q:回復シナリオ処理関数は、独自の関数ライブラリに存在する必要がある、つまり、他のユーザー定義関数とは別に存在する必要があるというのは本当ですか?

私はそれがdoxに述べられているのを見ませんでした。

4

1 に答える 1

1

これに関するドキュメントは見つかりませんが、経験的には答えは「はい」のように見えます。ハンドラーを含むライブラリーは、「リソース」、「ライブラリー」リストの下に含まれていてはなりません。それ以外の場合、ライブラリは同じ「名前空間」またはスコープに2回解析され、最初の宣言/定義によって再定義エラーが発生します。

于 2010-11-11T09:24:48.603 に答える