TestContext is null when it is accessed from base class's virtual method
Try creating a ClassInitialize method:
private static TestContext bingTestContext
[ClassInitialize]
public static void ClassInit(TestContext con)
{
bingTestContext = con;
}
Another option is to declare the TestContext as abstract in your base class
public abstract TestContext TestContext { get; set; }
And override it in your most derived concrete class(es)
public override TestContext TestContext { get; set; }