Search code examples
c#seleniumloggingselenium-webdriverassert

Can I write Assert message in my log file?


I have Assert smt like Assert.AreEqual(2, 3, "wrong")

Can I write wrong in my log file without needing to use Log.log.Error("wroong");?


Solution

  • You can use a TestContext class like this:

    [TestFixture]
    public class UnitTest
    {
        private readonly ILog logger = LogManager.GetLogger("your_logger");
    
        [Test]
        public void Demo()
        {
            Assert.AreEqual(2, 3, "wrong");
        }
    
        [TearDown]
        public void TearDown()
        {
            if (TestContext.CurrentContext.Result.FailCount > 0)
                logger.Error(TestContext.CurrentContext.Result.Message);
        }
    }
    

    This will write a full error message to your log file:

    wrong
    Expected: 2
    But was: 3