How do I get the name of the test method that was run in a testng tear down method?

前端 未结 5 1669
遇见更好的自我
遇见更好的自我 2020-12-01 08:00

Basically, I have a teardown method that I want to log to the console which test was just run. How would I go about getting that string?

I can get the class name, bu

5条回答
  •  青春惊慌失措
    2020-12-01 08:06

    Just declare a java.lang.reflect.Method parameter.

     @BeforeMethod
     public void beforeTestMethod(Method testMethod){
        System.out.println("Before Testmethod: " + testMethod.getName());       
     }
    

    But TestNG allows you to inject a lot more ;)

    • Any @Before method or @Test method can declare a parameter of type ITestContext.
    • Any @AfterMethod method can declare a parameter of type ITestResult, which will reflect the result of the test method that was just run.
    • Any @Before and @After methods can declare a parameter of type XmlTest, which contain the current tag.
    • Any @BeforeMethod (and @AfterMethod) can declare a parameter of type java.lang.reflect.Method. This parameter will receive the test method that will be called once this @BeforeMethod finishes (or after the method as run for @AfterMethod).
    • Any @BeforeMethod can declare a parameter of type Object[]. This parameter will receive the list of parameters that are about to be fed to the upcoming test method, which could be either injected by TestNG, such as java.lang.reflect.Method or come from a @DataProvider.
    • Any @DataProvider can declare a parameter of type ITestContext or java.lang.reflect.Method. The latter parameter will receive the test method that is about to be invoked.

提交回复
热议问题