繁体   English   中英

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

[英]Showing setup log info from the @BeforeTest annotation in a TestNG test

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

我在@BeforeTest注释方法中包含了一些Reporter.log("...")调用,以记录初始登录成功。 但是,此输出均未显示在输出文件中。

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

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

因此,换句话说,您将无法获得任何@Configuration方法以在测试中显示输出(按照我的设计),但是您在DataProvider中所做的任何操作都可以传递给@Test方法和/或@Before配置方法。

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

这只是一个偶然的解决方法,我会说您不应该这样做。 如果您确实认为需要在测试日志输出中显示设置信息,那么我建议您考虑一下为什么您认为需要这样做,因为这可能意味着您做了不寻常且不常见的做法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM