2009-05-09 12 views
0

私は定期的にいくつかのデータをチェックし、それに基づいていくつかの仕事をするためにクラスライブラリを呼び出す小さなウィンドウサービス(ウェブサービスではない)を構築するテストを作成してWindowsサービスを展開する際のベストプラクティス?

私はウィンドウを作成しようとするのは初めてですサービス

+0

漠然とした質問です。どのベストプラクティスが欲しいのですか?どのようなアドバイスをお探しですか? – Rob

+0

テストを作成してWindowsサービスをデプロイする方法: –

答えて

5

Windowsサービスは、何かを変更するたびに常にインストールしてアンインストールする必要があるため、テストするのが難しいです。

サービスのためにあなたが書いたBLを切り離して別のクラスに入れるのが最善です。その後、このBLクラスを使用してテストする簡単なデスクトップアプリケーションを書くことができます。テストが終了したら、同じロジックをWindowsサービスプロジェクトに簡単に組み込むことができます。

Windowsサービスをデバッグするには、プロセスにアタッチする必要があります。その後、コードを直接テストするのは非常に簡単です。

これが役に立てば幸いです。

+0

本当に便利ですty –

+2

これは該当しません。サービスから継承するクラスを作成し、テストのためにサービス機能を公開することができます。そのクラス(私はたいていホストと呼ぶ)は、サービスの保護されたOnStart、OnStopなどのメソッドをパブリックメソッドとして公開することができます(protected基本クラスメソッドにディスパッチするパブリックメソッドを作成するだけです)。次に、Hostクラスを駆動してサービスをテストするフォームを作成できます。唯一の複雑さは、あなたのフォームのapp.conigがあなたのサービスが探している設定を持たなければならないということです。 –

+1

デカップリングは、別のクラスでBLのみが抽出されるように意味されていました。 Windowsサービス自体の仕組みだけをデバッグしてテストすることは、私の関心事ではありませんでした。 イベントログにログインするもう1つの方法は、Windowsサービスの動作に関するデータを収集するための非常に便利な方法です。 – zidane

関連する問題