当前位置: 首页 > 知识库问答 >
问题:

在测试NG中第一个类执行后,全局变量被设置为null

苏建安
2023-03-14

我试图使用TestNG构建一个自动化框架,在这个框架中,我可以一个接一个地运行套件中的多个类。我有一个基类(TestBase.java),其中有所有全局(类)变量以及BeforeSuite和AfterSuite方法,它们初始化和销毁这些全局变量,比如WebDriver object,将在所有测试类中使用。

我的testng.xml如下所示:

<suite name="ShunyaAutomation" >
    <test name="ShunyaAutomation_Firefox" preserve-order="true" >
        <parameter name="browser" value="firefox"/>
        <parameter name="runType" value="local"/>
        <classes >
            <class name="org.shunya.Test1" />
            <class name="org.shunya.Test2" />
        </classes>
    </test>
</suite>

共有1个答案

姚信鸥
2023-03-14

@beforeSuite对于所有套件总是只运行一次方法。

如果在Test1Test2之间有一个TestBase类,该类具有@beforeSuite方法,则TestNG将:

  1. 创建test1实例
  2. 创建Test2实例
  3. 只从TestBase调用@beforeSuite方法一次,并将为该方法获取Test1Test2实例。

正如@Mona所建议的,您应该使用@beforeClass

 类似资料:
  • 本文向大家介绍如何在函数中设置一个全局变量相关面试题,主要包含被问及如何在函数中设置一个全局变量时的应答技巧和注意事项,需要的朋友参考一下 python中的global语句是被用来声明全局变量的。

  • 我使用的是swing,有一个函数(CreateAndShowGUI())可以监听上、左、右键的按下 现在,当我运行程序并按下任意键(向上、向左、向右、向下)时,我可以看到按下的键变量被设置为True。但当我试图在main中访问相同的内容时,按下的这个键的值为false。谁能帮我找出我错的地方吗?

  • 问题内容: 我试图在量角器上设置一个全局变量,以在所有描述块中使用。 但这返回了以下错误: 我也看了这个问题:量角器angularJS全局变量 所以我试图以这种方式在conf.js中设置变量glob: 仍然有相同的错误。 如何在量角器测试中正确添加全局变量? 问题答案: 可以借助属性从量角器配置文件设置全局变量: 您可以使用规范中访问它。 请参阅参考配置文件。 params对象将直接传递到Prot

  • 问题内容: 我正在一个项目上,我想让我的索引在滚动时加载更多内容。我想设置一个全局变量来保存页面已加载多少次。我的项目结构如下: 首先,我在中声明全局变量: 皮查姆(Pycharm)警告 在: 还有 我也引用了global-variable-and-python-flask 但我没有main()函数。在Flask中设置全局变量的正确方法是什么? 问题答案: 你没有在定义,只是在声明,所以就好像在说

  • 问题内容: 我在主模板中定义了一个全局变量,该变量用于存储来自后端的信息位,例如环境上下文路径。我无法在服务中移动该变量。 运行单元测试时,如何将该变量公开给Karma? 问题答案: 您可以在测试文件中声明该全局变量: 或在您的文件中添加已定义的Javascript 文件:

  • 问题内容: 全局变量在Python中如何工作?我知道全局变量是有害的,我只是在做实验。 这在python中不起作用: 我收到一个错误: 我究竟做错了什么? 问题答案: 您需要声明: 在Python中, 您分配的 变量默认情况下成为局部变量。您需要使用将它们声明为全局变量。另一方面,您 引用但未分配的 变量不会自动成为局部变量。这些变量指的是封闭范围内最接近的变量。 Python 3.x引入了类似于