在TestNG测试中显示来自@BeforeTest注释的设置日志信息

时间:2016-04-27 12:54:42

标签: java logging output testng

我正在使用testNg在Java中开发一些Selenium WebDriver测试。我有一个基类启动浏览器,导航到登录页面并登录。在基类中执行此操作的方法使用@BeforeTest进行注释。我的所有测试类都扩展了这个基类。

我在Reporter.log("...")带注释的方法中包含了一些@BeforeTest次调用,以记录初始登录成功。但是输出文件中没有出现此输出。

我的问题是:如何在输出文件中包含@BeforeTest带注释方法的Reporter.log()输出?

1 个答案:

答案 0 :(得分:0)

我能想到的唯一方法是在dataprovider中生成日志信息字符串(在安装过程中),然后使用Object []参数将日志信息字符串传递给@Test方法(@BeforeTest和/或@Test方法的可选TestNG方法。然后,您的@BeforeTest方法可以访问该字符串,并可以使用Reporter.log将其打印出来。

所以,换句话说,你将无法获得任何@Configuration方法来显示测试的输出(我认为是设计的)但是你在DataProvider中做的任何事情都可以传递给@Test方法和/或@Before配置方法。

另一种方法是在测试类中保留一个String变量,以保留日志信息。然后,在设置过程中,将设置信息保存到该字符串,然后在@Test方法中访问它并使用Reporter.log(string, true);将其打印到测试输出。

这只是一个间接的解决方法,我认为你不应该这样做。如果你真的认为你需要在测试日志输出中显示设置信息,我建议你真正考虑为什么你认为你需要这样做,因为它可能意味着你做了一些不寻常的事情而不是常见的做法。