I thought the whole purpose of these attributes was to run them only once per assembly. I have a simple class as follows:
[TestClass]
public class AssemblyIntegr
From the MSDN Library article:
Important
This attribute should not be used on ASP.NET unit tests, that is, any test with [HostType("ASP.NET")] attribute. Because of the stateless nature of IIS and ASP.NET, a method decorated with this attribute might be called more than once per test run.
There are few knobs you can tweak in test runner. I would just punt the problem with a counter:
private int InitCount;
[AssemblyInitialize]
public static void SetupIntegrationTests(TestContext context)
{
if (InitCount++ == 0) {
WindowsServiceService.Instance.StartService("Distributed Transaction Coordinator");
}
}
[AssemblyCleanup]
public static void TeardownIntegrationTests()
{
if (--InitCount == 0) {
WindowsServiceService.Instance.StopService("Distributed Transaction Coordinator");
}
}