I have read some information regarding TestContext of MStest and can use it accordingly.
Now my task about TestContext is a little bit different and am confusing how it could work.
The situation related to three files:
In testcase.cs file, TestContext property is in [Test Class]. But in [TestMehtod], I don't want to use like testContextInstance.WriteLine("WRITE TEST PARAMETERS") directly, it will be put in another file named TestLogger.cs.
[TestClass] public class Test1 : BaseTestTemplate { public TestContext TestContext { get; set; } public static void FixtureSetUp(TestContext testContext) { } public static void FixtureTearDown(TestContext testContext) { } [TestInitialize] public override void SetUp() { } [TestMethod] { Logger.BeginSection("WRITE TEST PARAMETERS"); // instead of testContextInstance.WriteLine("WRITE TEST PARAMETERS"); } }
In AssemblySetup.cs file, in [AssemblyInitialize], public static void AssemblySetUp(TestContext testContext) is done and it include one function that is InitializeLogging(); In this function, I initialize TestLogger with Logger.RegisterLogChannel(LogChannel.TestLog, new TestLogger()).
[TestClass] public static class AssemblySetUpClass { public static void InitializeLogging() { string testContext = ""; Logger.RegisterLogChannel(LogChannel.TestLog, new TestLogger(testContext)); } [AssemblyInitialize] public static void AssemblySetUp(TestContext testContext) { InitializeLogging(); } }
Following I add testContextInstance.WriteLine(title) in TestLogger.cs. But in debug, testContextInstance is always null.
public sealed class TestLogger : LoggerBase { private TestContext testContextInstance; public TestLogger(string testContext) { } public override void BeginSection(string title) { testContextInstance.WriteLine(title); base.BeginSection(title); } }
I am trying to modify Logger.RegisterLogChannel(LogChannel.TestLog, new TestLogger(testContext)) The purpose is to tell TestLogger, testContext will be called. In TestLogger, I also add private TestContext testContextInstance; and public TestLogger(string testContext)
The problem is still the same, in Warning it said, testContextInstance is never assigned to, will always have its default value null
I hope you could understand my problem. Please give me some idea or solutions on how to handle with it, thank you very much.