asp.net 環境内で実行する必要のないクラス (コントローラー) をテストしようとしています。
しかし、テストを実行すると、cassini が起動します。
カッシーニの負荷を回避するにはどうすればよいですか?
ありがとう
asp.net 環境内で実行する必要のないクラス (コントローラー) をテストしようとしています。
しかし、テストを実行すると、cassini が起動します。
カッシーニの負荷を回避するにはどうすればよいですか?
ありがとう
問題はコードカバレッジでした。無効にしたところ、cassini が起動しなくなりました (デバッグなし)。
テストをデバッグモードで実行すると、カッシーニが起動します。デバッグモードなしでテストを実行すると、実行されません。
Cassiniは、単体テストを実行するときではなく、プロジェクトをデバッグまたは実行する場合(つまり、F5またはCtrl-F5を押すことによって)にのみ実行する必要があります。ASP.NETプロジェクトのプロパティを表示し、[ Web ]タブを選択することで、F5キーを押したときに何が起こるかを変更できます。テストの実行方法は指定していませんが、Visual Studioの単体テストフレームワークとNUnitなどのフレームワークの両方が、カッシーニではない別のプロセスでテストを実行します。代わりに、テストを実行するために独自のコンソールアプリケーションプロジェクトを言う場合は、このプロジェクトがスタートアッププロジェクトとして設定されていることを確認する必要があります。次にF5キーを押すと、カッシーニではなくテストコンソールアプリケーションが実行されます。
コントローラーには asp.net 環境が必要です。これはリクエストのハンドラーです。代わりに IIS を使用するように IDE を設定できます。プロジェクトのプロパティ ページをクリックすると、[Web] タブに [IIS を使用] ラジオ ボタンが表示され、仮想ディレクトリを設定できます。その後、カッシーニはもうありません。
Visual Studio でユニット テストの作成機能を使用したことがある場合は、このようなテストが作成されます。
[TestMethod()]
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("C:\\working\\MDTest\\MvcApplication1", "/")]
[UrlToTest("http://localhost:1169/")]
public void AccountControllerConstructorTest()
{
//Implementation
}
UrlToTest 属性が原因で Cassini が起動します。上で述べたように、コントローラーは http ハンドラーであるため asp.net 環境が必要です。そのため、テストするには http を使用して呼び出す必要があります。cassini が気に入らない場合 (当然のことですが)、それを機能させるには IIS が必要です。
Web プロジェクトを右クリックし、この投稿の上部にある指示に従うと、単体テストの作成機能によってこれが生成されます
[TestMethod()]
[HostType("ASP.NET")]
[UrlToTest("http://localhost/MvcApplication1")]
public void AccountControllerConstructorTest()...
カッシーニなしで実行されます:)