2009-06-23 5 views
0

私は、既存の.NET Webフォームアプリケーションの非ページクラス内にいくつかの新しいユーティリティメソッドを書き、手動でテストするのではなく、VSユニットテストフレームワークを使用して単体テストを試みることにしました。以前は単体テストツールを使っていましたが、EXEプロジェクトやMVCプロジェクトでのみ使用しましたが、これまでに試したことがあってもWebHostAdapterに接続する際にエラーが発生しています。VS2008を使用して従来のASP.NETプロジェクトのメソッドでユニットテストを実行するにはどうすればよいですか?

現在のテスト:

[TestMethod()] 
    [HostType("ASP.NET")] 
    [AspNetDevelopmentServerHost("C:\\inetpub\\wwwroot\\sitepath", "/")] 
    [UrlToTest("localhost/Login.aspx")] 
    public void UrlFriendlyTitleTest() 
    { 
     string dirtyPath = "São\\Hell & High water"; 
     string expected = "sao/hell-high-water"; 
     string actual; 
     actual = GeneralUtility_Accessor.UrlFriendlyTitle(dirtyPath); 
     Assert.AreEqual(expected, actual); 
     Assert.Inconclusive("Verify the correctness of this test method."); 
    } 

エラー私が遭遇している:

The test adapter 'WebHostAdapter' threw an exception while running test 'UrlFriendlyTitleTest'. The web site could not be configured correctly; getting ASP.NET process information failed. Requesting 'localhost:53874/VSEnterpriseHelper.axd' returned an error: The remote server returned an error: (500) Internal Server Error. The remote server returned an error: (500) Internal Server Error.

私がこれまで試したどのような:

設定UrlToTestを現在実行中のデバッグパスにするためにプロジェクト内のページ。
ローカル既定のサイト(UrlToTestの現在の値に反映)への昇格されたアプリケーション。
認証されていないページを指すようにUrlToTestを設定します(どのページが呼び出されても問題ありません - まだ参照されていないメソッドをテストしています)。
MSDNボードからの提案(複数のリンクを投稿できません)。
そして、私は提案者とthis SO questionの著者によってリストされたweb.configの変更を試しました。

私が逃したこの問題に対する標準的な答えはありますか?

答えて

1

通常、私の非ページクラスはすべて、Webサイトから参照される別のアセンブリ(クラスライブラリ)で定義されます。 Webサイトをテストするよりもテストクラスライブラリを単体化するほうがはるかに簡単です。私のアドバイスは、あなたのGeneralUtilityクラスをクラスライブラリに移動してそこからテストすることです。

+0

残念ながら、私はこのアプリのソリューションの構造を変更することはできません。私ができれば、これはおそらく最も良い解決策になるでしょう。 –

+0

最終的には、コードをリファクタリングして、あまりモノリシックでないプロジェクトに組み込み、提案された変更をその一部として行いました。申し訳ありませんが、以前に受け入れられた回答としてマークするためにこれを更新しないでください。 –

関連する問題