gpt4 book ai didi

java - TestNG 正在乱序运行类(在测试类之间跳过)

转载 作者:行者123 更新时间:2023-11-29 09:30:25 24 4
gpt4 key购买 nike

我在使用 TestNG Selenium Webdriver 2.0 和 Java 时遇到问题。我设置了断点并看到了最奇怪的行为。
我有几个包含测试组的类文件。每个类都从初始化一些全局变量到该类中的所有测试开始,包括调用另一个初始化 webdriver 的类。接下来是@BeforeClass,接下来是我的@Test 测试。我正在运行 testng.xml 文件中的类。

最近在调试一个问题时,我发现在运行时,testNG 做了以下事情:

  1. 初始化class1中的全局变量和webdriver
  2. 然后跳到 class2 的顶部并做同样的事情
  3. 然后跳回到 class1 @BeforeClass
  4. 然后运行 ​​class1 5 中的测试,然后跳回到 class2

@BeforeClass 并从那里结束...

为什么 testNG 会这样。我已经尝试逐步完成,但 testNG 是编译代码,所以我无法弄清楚为什么它没有在上面的第 2 步之前以 class1 完成。在 class1 中的 webdriver 之后立即初始化 class2 中的 webdriver 会产生一个奇怪的问题,即我无法在不关闭 class2 的驱动程序的情况下在 class1 的末尾执行 driver.close() 。由于 class2 已经有它的全局变量和它的 webdriver 初始化,当 testNG 在 class1 测试完成后最终移回 class2 时,它的 webdriver 初始化被忽略。同样在运行时,我可以看到一个网络浏览器打开一条路径(对于 class1)然后转到另一条路径(对于 class2)。这是不对的。知道为什么 testNG 会按这样的顺序运行吗?

最佳答案

事实证明,导致 testNG 在类之间跳过的问题是我在类级别而不是在方法 (@Test) 中初始化变量、类等。您可以声明 NULL 对象,但不能在方法内以外的任何地方将它们初始化为任何值。这包括网络驱动程序!所以基本上是一个设置方法,第一个在类中运行的方法需要用于任何需要限定在类范围内的变量。希望这可以帮助某人节省一些时间。谢谢- JR。

关于java - TestNG 正在乱序运行类(在测试类之间跳过),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18516227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com