0

単体テスト プロジェクトと、VS2010 ソリューションに設定されたいくつかの Web サイトがあります。Web サイトは WCF サービスをホストするために使用され、静的ポート番号を使用するようにソリューションで構成されているため、テスト プロジェクトはそれらを検索するためのアドレスを認識します。Web サイトは、IIS ではなく、VS 開発サーバーで実行されます。これは、VS を介してテスト プロジェクトを実行する他の開発者と同様に、私のマシンでもうまく機能します。ただし、TFS ビルド サーバーがプロジェクトを実行しようとすると、Web サイトの静的ポート番号を無視しているように見えます。

イベント ログに、指定していないポート番号でビルド サーバーが Web サイトを起動しようとしていることを示すエラーが表示されます。ビルド ディレクトリをチェックアウトしたところ、テスト プロジェクト アセンブリを含むディレクトリ内に Web サイトのファイルが見つかりましたが、ソリューション ファイルがどこでも参照されていることを示す兆候はありません。これは、VS が静的ポート番号を格納するために使用するメカニズムです。一連の単体テストを実行するときに、TFS ビルド サーバーが開発 Web サーバー内から Web サイトをホストするために使用するポートを指定する方法はありますか?

また、この問題を間違った方法で攻撃しようとしているように思われる場合は、お知らせください。これは TFS ビルド サーバーでの初めての経験であり、自動化された単体テストで WCF サービスを呼び出すことができるようになることを本当に望んでいました。

4

1 に答える 1

0

そこで、テスト コード内のプロセスとして WebDev.WebServer40.exe を呼び出して、ASP.Net 開発サーバーで Web サイトを起動することで、これを解決しました。ローカルの開発環境とビルド サーバーでは場所が異なるため、多くの手がかりを使用して、実行時に Web サイト ファイルの場所を動的に特定する必要があったため、これは非常に注意が必要でした。AspNetDevelopmentServerAttribute を使用して既知のポート番号を指定する方法があればいいのにと思います。

于 2011-03-24T13:26:47.053 に答える