TestNG中BeforeClass和BeforeTest的区别

2023-12-29

从 TestNG 官方文档中我们得知:

@BeforeClass:带注释的方法将在调用当前类中的第一个测试方法之前运行。

@BeforeTest:带注释的方法将在属于该类内部的任何测试方法之前运行<test>标签已运行。

上述两个 TestNG 注释在功能上看起来相似。谁能解释一下独特的区别?


Selenium 抽象 Test.class

public abstract class SeleniumAbstractTest {

  @BeforeSuite
  public void beforeSuite() {
    System.out.println("BeforeSuite");
  }

  @BeforeTest
  public void beforeTest() {
    System.out.println("BeforeTest");
  }

  @BeforeClass
  public void beforeClass() {
    System.out.println("BeforeClass");
  }

  @BeforeMethod
  public void beforeMethod() {
    System.out.println("BeforeMethod");
  }

  @AfterMethod
  public void afterMethod() {
    System.out.println("AfterMethod");
  }

  @AfterClass
  public void afterClass() {
    System.out.println("AfterClass");
  }

  @AfterTest
  public void afterTest() {
    System.out.println("AfterTest");
  }

  @AfterSuite
  public void afterSuite() {
    System.out.println("AfterSuite");
  }

}

MyTestClass1.class

public class MyTestClass1 extends SeleniumAbstractTest {
  
  @Test
  public void myTestMethod1() {
    System.out.println("myTestMethod1");
  }

  @Test
  public void myTestMethod2() {
    System.out.println("myTestMethod2");
  }
}

MyTestClass2.class

public class MyTestClass2 extends SeleniumAbstractTest {
  
  @Test
  public void myTestMethod3() {
    System.out.println("myTestMethod3");
  }

  @Test
  public void myTestMethod4() {
    System.out.println("myTestMethod4");
  }
}

如果您有以下测试套件...

<suite name="Suite">
  <test name="Test1" >
    <classes>
       <class name="MyTestClass2" />
    </classes>
  </test>
 
  <test name="Test2">
    <classes>
      <class name="MyTestClass1"/>
      <class name="MyTestClass2"/>
    </classes>
  </test>
</suite>

...那么输出[缩进以便于阅读]将是

BeforeSuite
'   BeforeTest
'   '   BeforeClass
'   '   '   BeforeMethod
'   '   '   '   myTestMethod3
'   '   '   AfterMethod
'   '   '   BeforeMethod
'   '   '   '   myTestMethod4
'   '   '   AfterMethod
'   '   AfterClass
'   AfterTest
'   BeforeTest
'   '   BeforeClass
'   '   '   BeforeMethod
'   '   '   '   myTestMethod1
'   '   '   AfterMethod
'   '   '   BeforeMethod
'   '   '   '   myTestMethod2
'   '   '   AfterMethod
'   '   AfterClass
'   '   BeforeClass
'   '   '   BeforeMethod
'   '   '   '   myTestMethod3
'   '   '   AfterMethod
'   '   '   BeforeMethod
'   '   '   '   myTestMethod4
'   '   '   AfterMethod
'   '   AfterClass
'   AfterTest
AfterSuite
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TestNG中BeforeClass和BeforeTest的区别 的相关文章

随机推荐

  • 为什么 UILabel 没有初始化?

    代码来自斯坦福大学CS193p 我添加了一个 NSLog 来查看 标签似乎没有被初始化 任何想法 interface AskerViewController
  • 变量内部的 jQuery 选择器?

    您好 我正在尝试获取另一个 HTML 文件中具有特定类的所有 DIV 的 ID 要加载我使用的文件 get blocks html function data here I don t know how 现在我正在寻找这样的东西 data
  • 如何使用RelativeLayout实现以下结果?

    图片 http img838 imageshack us img838 1402 picse png http img838 imageshack us img838 1402 picse png 如何制作图中的布局 2 仅使用Relati
  • 按组从前一行减去值

    在 R 中 假设我有这个数据框 Data id date value 2380 10 30 12 21 01 2380 10 31 12 22 04 2380 11 1 12 22 65 2380 11 2 12 23 11 20100 1
  • Swing GroupLayout:调整大小和限制组件大小

    我在用着GroupLayout管理一些动态生成的数据输入表单中的组件 布局或多或少像这样 label A field A label B field B label C field C 我使用 2 个并行组进行水平布局 使用一个顺序组进行垂
  • UEFI引导加载程序

    我正在考虑开发一个简单的 首先 UEFI 引导加载程序来加载 ELF 映像 并且想知道是否有人有一个很好的切入点 可以进入任何现有项目 或者我可以用来开始使用的示例 另外 我想知道是否有人有让虚拟机运行 EFI 应用程序的经验 我已经设置了
  • 子进程会发生什么?

    如果子进程的父进程未经等待就突然终止 会发生什么情况 子进程也会死吗 孩子得到重新定义为init http en wikipedia org wiki Orphan process
  • linux Wayland 显示多用户

    我使用摇摆合成器 当我在控制台中更改用户时 我无法显示 wayland 图形界面 它与 X 应用程序一起使用 su otherUser myApplicationWayland error XDG RUNTIME DIR not set i
  • Windows 上的 Apache / PHP 因正则表达式而崩溃

    我发现以下 PHP 代码在 Windows Apache 服务器上运行时会崩溃
  • Google Firebase 功能部署失败 - 我该怎么办?

    错误信息 Error There was an error deploying functions firebase debug log 包含以下内容 debug 2021 11 16T12 12 16 165Z Error Failed
  • 如何在 NestJS 中提供静态图像

    我开始学习 MEAN 堆栈 当我访问 Express 时 我发现 Express 框架中存在一个额外的层 称为 NestJS 它拥有我想要的一切 并且具有类似 Angular 的语法 因此对我来说非常完美 但每一个新步骤都是一场噩梦 文档根
  • Android SurfaceView 的低 FPS

    我在使用 SurfaceView 时遇到了一些帧速率问题 我正在做我在一些教程中找到的典型内容 所有教程都说一样 但我无法在我的三星 Galaxy S 旧款 i9000 上达到像样的帧速率 这是我的循环线程的代码 FPS 初始化为 30 O
  • RESTSharp 无法找到位置标头

    我有一个 C 异步任务返回 Task
  • 无法将外部引用与 C# 控制台应用程序一起使用

    我已经尝试了下面的所有建议 但仍然没有喜悦 我现在正在尝试控制台应用程序 让我准确解释一下我在做什么 我在 VS 2010 中创建一个新的控制台项目 我添加了许多引用 dll 其中一些不是我的 例如 Castle Winsor 和 N2 C
  • Rails 开发人员如何与 Flex 前端对话?

    我将 Rails 开发视为 Flex 应用程序的后端 并试图找出 Rails 应用程序和 Flash Player 之间的通信层 我发现的所有内容都表明使用 SOAP Web 服务进行通信 然而 Flash 支持 AMF 它很好且快速 并且
  • 在 AFNETWORKING 中返回响应

    我正在关注this http www raywenderlich com 30445 afnetworking crash course在 IOS 中学习 AfNetworking 的教程 我正在使用以下函数来获取服务器的响应 1 NSSt
  • 仅更改图表一个区域的背景颜色[重复]

    这个问题在这里已经有答案了 我想仅更改图表的一部分的背景颜色 那可能吗 例如 使用下面的图表 我可能想表明我对重量在 2 到 4 吨之间的汽车特别感兴趣 因此希望使用粉红色背景突出显示该区域 更具体地说 我想覆盖一个透明的粉红色矩形 该矩形
  • 如何在 Swift 中检索对象的类型? [复制]

    这个问题在这里已经有答案了 我似乎无法在 Swift 中找到返回对象类型的函数或方法 如何在 Swift 中检索对象的类型或类 我尝试使用 Obj C 类 但显然不起作用 在Python中你有类似的东西type or isinstance
  • 如何为每个版本提供 2 种风格和 2 种不同的密钥配置以用于调试版本?

    背景 我认为 Google 登录存在一个问题 该问题与我们对我们开发的 2 种不同风格的应用程序使用相同的密钥配置这一事实有关 原因是两者在调试和发布时似乎具有相同的 SHA1 该问题仅存在于第二个版本的发行版本中 在第一种风格的构建和调试
  • TestNG中BeforeClass和BeforeTest的区别

    从 TestNG 官方文档中我们得知 BeforeClass 带注释的方法将在调用当前类中的第一个测试方法之前运行 BeforeTest 带注释的方法将在属于该类内部的任何测试方法之前运行