2

我在 Visual Studio 中有一个 Windos 服务项目,因为如果不安装它就无法启动服务,如果我想测试我的代码的一些更改,我必须一次又一次地编译 + 卸载旧服务 + 安装新服务。这是永远的。

有没有更简单的方法来测试 Windows 服务?谢谢

4

2 回答 2

2

从 VS 将服务作为控制台应用程序运行。其实,如果你很聪明,你可以测试是否

Environment.UserInteractive

这样,通过一个简单的“如果”,您可以让您的服务正常运行,如果您以交互模式运行它,则无需 windows 服务的东西,或者如果它作为服务运行,则执行正常的服务启动。

于 2012-09-08T14:11:36.707 回答
1

在测试服务时,我通常建议将功能与托管分开。并以独立的方式测试功能。

这意味着您可能会在 OnStart 中生成一个工作线程,该线程实例化并调用一些代表服务实际工作的类方法。从技术上讲,这段逻辑不应该明确关心它在哪里运行,控制台应用程序、Windows 服务或 Web 服务等。

II 建议您直接测试此逻辑,例如在单元测试中,其中逻辑由 Visual Studio 本身托管。这并不是建议您不应该测试服务,但这可以手动或自动完成,尤其是在 QA 或健全性测试期间,运行需要很长时间才能执行的测试是可以的。

于 2012-09-08T14:15:39.677 回答