También encontré este problema aunque mi problema terminó siendo un problema de subprocesamiento. En mi caso estaba fingiendo el objeto HttpContext ya que las pruebas se basaban en su existencia. Sin embargo, yo estaba sentado en el método de este ClassInitialize pensando que esto sería utilizado para cada método, como a continuación:
[ClassInitialize]
public static void ClassInit(TestContext testContext)
{
HttpContext.Current = new HttpContext(new HttpRequest(null, "http://tempuri.org", null), new HttpResponse(null));
}
Sin embargo, resulta que cada método de prueba en la clase se ejecuta en un hilo separado. Así que tuve que agregar este código a cada método de prueba que dependía de él para solucionar el problema.
[TestMethod]
public void TestMethod1()
{
HttpContext.Current = new HttpContext(new HttpRequest(null, "http://tempuri.org", null), new HttpResponse(null));
...
}
[TestMethod]
public void TestMethod2()
{
HttpContext.Current = new HttpContext(new HttpRequest(null, "http://tempuri.org", null), new HttpResponse(null));
...
}
Ver enlace para obtener más información al respecto. http://blogs.msdn.com/b/nnaderi/archive/2007/02/17/explaining-execution-order.aspx