Get name of running test in Xunit

前端 未结 3 1867
予麋鹿
予麋鹿 2021-02-18 15:52

Using Xunit, how can I get the name of the currently running test?

  public class TestWithCommonSetupAndTearDown : IDisposable
  {
    public TestWithCommonSetup         


        
3条回答
  •  不要未来只要你来
    2021-02-18 16:26

    You can use BeforeAfterTestAttribute to resolve your case. There are some ways to address your issue using Xunit, which would be to make sub-class of TestClassCommand, or FactAttribute and TestCommand, but I think that BeforeAfterTestAttribute is the simplest way. Check out the code below.

    public class TestWithCommonSetupAndTearDown
    {
        [Fact]
        [DisplayTestMethodName]
        public void Blub()
        {
        }
    
        private class DisplayTestMethodNameAttribute : BeforeAfterTestAttribute
        {
            public override void Before(MethodInfo methodUnderTest)
            {
                var nameOfRunningTest = "TODO";
                Console.WriteLine("Setup for test '{0}.'", methodUnderTest.Name);
            }
    
            public override void After(MethodInfo methodUnderTest)
            {
                var nameOfRunningTest = "TODO";
                Console.WriteLine("TearDown for test '{0}.'", methodUnderTest.Name);
            }
        }
    }
    

提交回复
热议问题