【问题标题】:Testing a Windows Service Project takes too long测试 Windows 服务项目花费的时间太长
【发布时间】:2012-09-08 13:57:06
【问题描述】:

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

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

【问题讨论】:

  • 可能与 stackoverflow.com/questions/42150/…> 链接有关。
  • 您的代码在服务中时的工作方式是否有问题,但它本身就可以正常工作?
  • 您可以根据需要将服务作为应用程序运行(即不安装)。我在这里提供更多细节:bit.ly/LFEk6d
  • @PeterRitchie 无需从 VS 安装即可运行服务非常好,我会试试这个
  • 你不需要卸载它,停止它,重建它,启动它

标签: c# .net visual-studio-2010 testing service


【解决方案1】:

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

Environment.UserInteractive

这样用一个简单的“如果”你就可以让你的服务正常运行,如果你在交互模式下运行它,没有windows服务的东西,或者如果它作为服务运行,你执行正常的服务启动。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-01-04
      • 2015-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-07
      相关资源
      最近更新 更多