使用超时时在不同线程上运行的TestNG,是否有可能我们可以使用同一线程

时间:2018-11-14 12:33:06

标签: selenium-webdriver testng testng-dataprovider testng-eclipse

我正在尝试创建一个threadLocal网络驱动程序。

尝试初始化并登录@BeforeClass中的over应用程序。

@test具有功能。该测试工作正常,但是每当我使用@test(timeOut = 1200)时,都会由于Testng中的timeOut在其他线程上运行而失败。

但是,只要@test(timeOut = 1200)中存在超时,TestNG就会为@beforeclass和@test创建两个新线程。

是否有可能在单个线程中运行。

我已经尝试使用-Dtestng.thread.affinity = true J​​VM agrument测试TestNG-7.0.0-beta1。 但是它仍然不能满足我的要求。

谢谢, 巴拉吉

1 个答案:

答案 0 :(得分:0)

自最新发布的TestNG版本7.0.0-beta1起,TestNG当前不支持此功能。每当为timeout方法指定@Test属性时,TestNG就会在单独的线程中生成它,以便它可以强制执行超时。

但是此行为仅适用于@Test方法,不适用于

  • 侦听器(IInvokedMethodListener提供了beforeInvocation()(或afterInvocation()))(或)
  • 用于配置方法,例如@BeforeMethod(或)@AfterMethod带注释的配置

[这是TestNG通常与@Test方法在同一线程上运行的唯一方法集。

您也知道,此问题已通过https://github.com/cbeust/testng/issues/914

进行了跟踪