When testing services, I would usually recommend to separate the functionality from the hosting. And test the functionality in an independent manner.
What this means is the your probably spawns a worker thread in OnStart, and this thread instantiates and calls some class methods that represent the actual workings of the service. Technically, this piece of logic should not explicitly care where it runs, console app, windows service or a web service etc..
I I would advise you to test this logic directly, for example in unit tests, where the logic is hosted by visual studio itself. This is not to suggest you should not test the service, but this can be done manually or automatically, especially during QA or Sanity testing, where it is OK to run tests that take a long time to execute.