あなたの質問ではQTPは明示的ではありませんが、HP-UFTというタグを使用しているためQTPを想定しています。
「エラーが発生したとき」とは何を意味するのかよくわからないので、2つの可能性を検討します。
1)テストしているアプリケーションでエラーが発生しました。 QTP自体は依然としてスクリプトを実行しています。
このような状況では、スクリプトで検証チェックが行われる必要があります(実際に起こったことが確実に起きるかどうかを確認するステートメントがある場合はif)、これらのチェックが失敗した場合はすぐにDataTable.Export QTPが終了する前にディスクにデータを保存します。その後、スクリプトを続行するか、ExitTestを追加して失敗してテストを停止することができます。あなたはQTP自体にエラーを取得している
2):
は、あなたの質問に基づいて、私はそれが可能性が高いと思います。 QTPがクラッシュすると、DataTableの動的な変更がすべて破棄されます(つまり、DataTable.Import(ファイル名)を実行した場合やフィールドを更新した場合は、デザインタイムのDataTableに戻ります)
状況によっては、あなたのスクリプトがQTP自身がスクリプトを停止させている何かに遭遇しています。おそらく、オブジェクトが見つからないエラー、または何らかの構文エラーが発生している可能性があります。あなたは
function FailTestBecause (reason)
Print "Test Failed Because: " & reason
Reporter.ReportEvent micFail, Environment("ActionName"), reason
DataTable.Export(filename)
ExitTest
end Function
... ...おそらく追加、たとえば...あなたのコードでは、この種のエラーが発生するという点に到達する前に、物事をチェックするために
If not Browser("ie").Page("page").WebTable("table").Exists then
FailTestBecause "Can't find table"
End If
を守備の文を追加することを検討すべきです
または、On Error Resume Nextを使用し、DataTable.Export(filename)のコマンドを失敗した直後に置くことができます。
あなたが尋ねていることは全くわかりません。 "あなたがXを意味するならば、A、もしあなたがY、そしてB"を意味するならば、問題があると思われる理由を示すスクリプトのように、より多くの情報を投稿してください。 。 (どのような質問:どのようにエクスポートする?どのようにエラーを検出するか?どのような種類のエラー?正確な操作の間に何が原因で発生したのか何のシート何のデータ何のエラー短いのか? – TheBlastOne