MsTest ClassInitialize and Inheritance
c#, mstest
Solution
Unfortunately you cannot achieve this that way because the ClassInitializeAttribute Class cannot be inherited.
An inherited attribute can be used by the sub-classes of the classes that use it. Since the `ClassInitializeAttribute` cannot not be inherited, when the `MyTest` class is initialized the `ClassInitialize` method from the `MyBaseTest` class cannot be called.
Try to solve it with another way. A less efficient way is to define again the `ClassInitialize` method in `MyTest` and just call the base method instead of duplicating the code.
Problem
I have a base class for my tests which is composed in the following way: ``` [TestClass] public abstract class MyBaseTest { protected static string myField = ""; [ClassInitialize] public static void ClassInitialize(TestContext context) { // static field initialization myField = "new value"; } } ``` Now I am trying to create a new test that inherits from the base, with the following signature: ``` [TestClass] public class MyTest : MyBaseTest { [TestMethod] public void BaseMethod_ShouldHave_FieldInitialized() { Assert.IsTrue(myField == "new value"); } } ``` The `ClassInitialize` is never called by the child tests ... What is the real and correct way of using test initialization with inheritance on MsTest?