我正在尝试使用 OpenCover 来获取使用 Topshelf 的服务的覆盖率指标。该应用程序从控制台运行良好。
当应用程序运行时,它会打印以下内容:
The service is now running, press Control+C to exit.
然后一旦按下 Control+C 就会打印
Control+C detected, attempting to stop service.
在没有 OpenCover 的情况下完成时,应用程序会捕获 Ctrl+C 并正常停止,完成后返回命令提示符。
我正在使用以下命令通过 OpenCover 运行应用程序:
OpenCover.Console.exe -target:service.exe -log:All -register:administrator
当通过 OpenCover 完成时,我认为 OpenCover 会立即捕获 Ctrl+C,然后将其传递给我的服务应用程序。结果是 OpenCover 立即终止,但覆盖的目标应用程序仍在运行,并且需要几秒钟才能停止。我可以看到服务进程仍在 Process Explorer 中运行,并且在它死亡时将其清理消息打印到标准输出。
如果 OpenCover 尝试从中获取指标的应用程序在 OpenCover 停止后关闭,OpenCover 是否仍能获取覆盖信息?