2009-06-01 14 views
3

私たちには、テストプロジェクトが添付されたWebアプリケーションプロジェクト(実際には数十件)があります。テストプロジェクトでは、いくつかのメソッドを実行する単純な単体テストがあります。AspNetDevelopmentServerHost属性のベストプラクティスは何ですか?

ローカルで実行すると、単体テストが実行されて動作します。

ただし、TFSビルドサーバーがテストを実行しようとすると、AspNetDevelopmentServerHost属性の無効なパスに関するエラーで失敗します。他のチームメンバーもそれをうまく実行できます。

問題は、自分のTFSワークスペースのルートがc:\ projects \に設定されていることです。チームメンバの1人がc:\ tfs2008 \に設定されています。一方、TFSビルドサーバーは、pathToWebRoot変数を " c:\ blahblah \ Release_PublishedWebsites ... "という結果になります。

プロジェクトの数が多いため、プロジェクトを切り替えるたびに誰もが環境変数をリセットすることはできません。

したがって、チーム環境でのWebプロジェクトの単体テストに関するベストプラクティスは何ですか? MSDN site articleは真のマイクロソフトのファッションでは役に立たなかった。

答えて

3

AspNetDevelopmentServerまたはAspNetDevelopmentServerHost属性のpathToWebAppパラメータに文字列%pathtowebroot%\\WebSiteNameを指定する必要があります。

+0

十分に閉じます。私たちは実行時に設定することができればいいと思っています。 – NotMe

1

ビルド中に環境変数を設定してパスを変更し、それでもローカル環境で動作させることは可能です。

我々が使用
+0

多くの調査の後、本当の問題はPathToWebRootがTFSビルドでWebプロジェクト用に間違って設定されていることです。 Webサイトはうまく動作しますが、出力パスが異なるWebプロジェクトでは正しく設定されません。ちなみに、私は2010年が問題を解決することを希望してこれをあきらめました。 – NotMe

3

<TestMethod(), _ 
HostType("ASP.NET"), _ 
AspNetDevelopmentServerHost("$(SolutionDir)\\MyWebProject", "/"), _ 
UrlToTest("http://localhost:44444/")> 
Public Sub Test() 
    AssertStuff(); 
End Sub 

$(SolutionDir)は、それがすべての人の環境で正常に動作し、すべてのテストをして確認することができます意味私たちが持っています。新しいテストを自動的に作成するたびにそれを変更しますが、とにかくテストを書いているので、あまり苦労しません。

関連する問題