2009-08-17 4 views
0

私は従来のASPコードのユニットテストにASPUnitを使用し始めました。これはすべていいですし、私は満足しています。唯一の問題は、テストでランタイムエラーが発生したときに表示されるエラーメッセージです。私は私の機能のどこかの変数を定義していないした場合たとえば、私はエラーを取得する:いつASPErrorオブジェクトにアクセスできますか?

 
Microsoft VBScript runtime error (500): Variable is undefined 

より有用であろう何、それはエラーがで発生したファイル/行私に言うことができる場合です。私はこの情報をServer.GetLastError()によって返されるASPErrorオブジェクトから取得できることを知っています。このメソッドを使用してFogbugzにクラッシュを自動的に報告するカスタム500エラーページがあります。しかし、Server.GetLastErrorにアクセスしようとすると、返される情報は空白になります。たとえば、次のコードでは、出力がゼロではなく、予想4.

<% 
Option Explicit 
On Error Resume Next 
aVariable = "hello" 
Dim errObj : Set errObj = Server.GetLastError() 
Response.Write errObj.Line 
%> 

これはASPErrorにアクセスするための正しい方法ですますか、カスタムエラーページ上でのみ可能ですか? ASPUnitでエラーメッセージが表示されるようにするには、より良い方法がありますか?

答えて

1

私の知る限りでは、現在のページが処理を終了するまで、ASPErrorオブジェクトにデータが取り込まれません。 500エラーページでのみ使用されることを意図しています。したがって、500ページを設定した場合にエラーが発生すると、IISはそのページに内部リダイレクトを行い、少なくともエラーを記録できるようにします。次に、利用可能なASPErrorオブジェクトのみが存在します。私はページをつかむようにxmlhttprequestを使用するという夢のようなアイデアを持っていましたが、それはちょうどそれが動作する方法ではありません。

要するに、必要なエラーメッセージの詳細を得ることはあまりありません。

JScriptサーバー側を使用すると、例外オブジェクトへのアクセスを提供するtry catchを使うことができますが、それでもあなたにはあまり良くない行番号などはありません。ごみ。

+0

ブー。それは私が恐れていたものです。答える時間をとってくれてありがとう。 – jammus

関連する問題