我在Visual Studio中有一个Windos服务项目,因为如果不安装它就无法启动服务,我必须一次又一次地编译+卸载旧服务+安装新服务,如果我想在我的代码上测试一些更改。这是永远的。
有没有更简单的方法来测试Windows服务?谢谢
答案 0 :(得分:2)
从VS运行服务作为控制台应用程序。事实上,如果你很聪明,你可以测试是否
Environment.UserInteractive
这种方式使用简单的“if”,您可以让您的服务正常运行,如果您以交互模式运行它,则无需Windows服务,或者如果它作为服务运行,则执行正常的服务启动。 / p>
答案 1 :(得分:1)
在测试服务时,我通常会建议将功能与托管分开。并以独立的方式测试功能。
这意味着您可能在OnStart中生成一个工作线程,并且该线程实例化并调用一些表示服务实际工作方式的类方法。从技术上讲,这条逻辑不应该明确地关注它运行的位置,控制台应用程序,Windows服务或Web服务等。
我建议你直接测试这个逻辑,例如在单元测试中,逻辑由visual studio本身托管。这并不是建议您不应该测试服务,但这可以手动或自动完成,尤其是在QA或Sanity测试期间,可以运行需要很长时间才能执行的测试。