我正在使用testNg在Java中开发一些Selenium WebDriver测试。我有一个基类启动浏览器,导航到登录页面并登录。在基类中执行此操作的方法使用@BeforeTest
进行注释。我的所有测试类都扩展了这个基类。
我在Reporter.log("...")
带注释的方法中包含了一些@BeforeTest
次调用,以记录初始登录成功。但是输出文件中没有出现此输出。
我的问题是:如何在输出文件中包含@BeforeTest
带注释方法的Reporter.log()
输出?
答案 0 :(得分:0)
我能想到的唯一方法是在dataprovider中生成日志信息字符串(在安装过程中),然后使用Object []参数将日志信息字符串传递给@Test
方法(@BeforeTest
和/或@Test
方法的可选TestNG方法。然后,您的@BeforeTest方法可以访问该字符串,并可以使用Reporter.log将其打印出来。
所以,换句话说,你将无法获得任何@Configuration方法来显示测试的输出(我认为是设计的)但是你在DataProvider中做的任何事情都可以传递给@Test
方法和/或@Before配置方法。
另一种方法是在测试类中保留一个String变量,以保留日志信息。然后,在设置过程中,将设置信息保存到该字符串,然后在@Test方法中访问它并使用Reporter.log(string, true);
将其打印到测试输出。
这只是一个间接的解决方法,我认为你不应该这样做。如果你真的认为你需要在测试日志输出中显示设置信息,我建议你真正考虑为什么你认为你需要这样做,因为它可能意味着你做了一些不寻常的事情而不是常见的做法。