当前位置: 首页 > news >正文

银川网站开发公司seo网站外包公司

银川网站开发公司,seo网站外包公司,镇江模板网站,常州专业网站建设推广目录 什么是BeforeSuite注解? BeforeSuite带注释的方法何时执行? BeforeSuite annotation有什么用? 所以,是时候集思广益了 我们可以在一个类中使用多个BeforeSuite注释方法吗? BeforeSuite放在超类上时如何工作…

目录

什么是@BeforeSuite注解?

@BeforeSuite带注释的方法何时执行?

@BeforeSuite annotation有什么用?

所以,是时候集思广益了

我们可以在一个类中使用多个@BeforeSuite注释方法吗?

@BeforeSuite放在超类上时如何工作?


TestNG是Java生态系统中许多人使用的流行测试框架。它提供了各种注释,帮助规范测试执行。最重要的注释之一是@BeforeSuite注释。

本文将讨论@BeforeSuite注释及其在TestNG中的用法。我们将介绍以下主题:

  • 什么是@BeforeSuite注解?
  • 使用@BeforeSuite注释有什么好处?
  • 然后是一些有趣的问题
什么是@BeforeSuite注解?

@BeforeSuite注释是TestNG中所有@BeforeXXX和@AfterXXX注释中的最高优先级。这意味着任何带有@BeforeSuite注释的方法都将在套件中的任何其他测试之前执行。

@BeforeSuite带注释的方法何时执行?

通过参考testng.xml文件,可以很容易地理解@BeforeXXX和@AfterXXX注释的执行点。

<!-- @BeforeSuite annoated method will execute here  -->
<suite name="codekru"><test name="codekru"><classes><class name="Test.CodekruTestFirst" /><class name="Test.CodekruTestSecond" /></classes></test>
</suite>

因此,@BeforeSuite注释方法将在suite标记之前执行。

我们将采用两个类(CodekruTestOne和CodekruTestSecond),并在CodekruTestSecond类中定义@BeforeSuite注释方法。

CodekruTestFirst.java

package Test;import org.testng.Assert;
import org.testng.annotations.Test;public class CodekruTestFirst {@Testpublic void test() {System.out.println("Executing the test in CodekruTestFirst class");Assert.assertTrue(true);}}

CodekruTestSecond.java

package Test;import org.testng.Assert;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;public class CodekruTestSecond {@BeforeSuitepublic void beforeSuite() {System.out.println("In beforeSuite method");}@Testpublic void test() {System.out.println("Executing the test in CodekruTestSecond class");Assert.assertTrue(true);}}

我们现在将运行下面的XML来执行这两个类,让我们看看会发生什么。

<suite name="codekru"><test name="codekru"><classes><class name="Test.CodekruTestFirst" /><class name="Test.CodekruTestSecond" /></classes></test>
</suite>

输出-

In beforeSuite method
Executing the test in CodekruTestFirst class
Executing the test in CodekruTestSecond class===============================================
codekru
Total tests run: 2, Failures: 0, Skips: 0

 

@BeforeSuite annotation有什么用?
  • 它允许您为套件中的所有测试执行常见的设置任务,例如初始化数据或设置环境。
  • 它允许您在单个方法中定义常见的设置任务,从而减少了代码重复。
  • 它通过将常见的设置任务与实际的测试代码分开来提高测试代码的可读性。
所以,是时候集思广益了
我们可以在一个类中使用多个@BeforeSuite注释方法吗?

答案是肯定的。我们可以在一个类中使用多个@BeforeSuite注释方法,并且所有方法都将在套件中的测试用例之前运行。我们将在CodekruTestSecond类中保留两个@BeforeSuite注释方法。我们来做个示范。

package Test;import org.testng.Assert;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;public class CodekruTestSecond {@BeforeSuitepublic void beforeSuite1() {System.out.println("In beforeSuite1 method");}@BeforeSuitepublic void beforeSuite2() {System.out.println("In beforeSuite2 method");}@Testpublic void test() {System.out.println("Executing the test in CodekruTestSecond class");Assert.assertTrue(true);}}

然后运行下面的XML文件

<!-- @BeforeSuite annoated method will execute here  -->
<suite name="codekru">   <test name="codekruTest"><classes><class name="Test.CodekruTestSecond" /></classes></test></suite>

输出-

In beforeSuite1 method
In beforeSuite2 method
Executing the test in CodekruTestSecond class===============================================
codekru
Total tests run: 1, Passes: 1, Failures: 0, Skips: 0
===============================================

 

@BeforeSuite放在超类上时如何工作?

让我们通过一个例子来看看这个问题。

package Test;import org.testng.Assert;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;class CodekruTest {@BeforeSuitepublic void beforeSuiteMethod() {System.out.println("beforeSuite method called");}}public class CodekruTestSubclass extends CodekruTest {@Test()public void test() {System.out.println("Executing the subclass test");Assert.assertTrue(true);}}

现在,我们将在testng.xml下面运行,看看会发生什么

<suite name="codekru"><test name="codekru"><classes><class name="Test.CodekruTestSubclass" /></classes></test>
</suite>

输出-

beforeSuite method called
Executing the subclass test===============================================
codekru
Total tests run: 1, Failures: 0, Skips: 0
===============================================

因此,即使带注释的方法放在超类上,beforeSuiteMethod也会运行,因为子类继承了所有方法。但是,如果我们将beforeSuiteMethod设置为private,它将不会运行,因为private方法不能被子类继承。

http://www.tj-hxxt.cn/news/47695.html

相关文章:

  • 在线购物商城网站建设广点通广告投放平台
  • 龙华网站公司抖音广告代运营
  • 个人做的网站百度搜索不到重庆网络推广平台
  • 祁东网站设计公司百度搜索竞价推广
  • wordpress 注册邮件设置快速整站排名seo教程
  • wordpress的ftp設置南宁百度推广seo
  • 网站建设公司 壹宇网络网站制作免费
  • 大连网页网站制作知名seo公司
  • wordpress获取栏目名称百度关键词优化系统
  • 唐山建网站外链发布论坛
  • 做百度移动网站点击百度不让访问危险网站怎么办
  • 商城开源免费商用谷歌seo 优化
  • 济南手机网站怎么做网页设计的页面
  • 楚州网站开发网站seo推广营销
  • 沈阳网站建设方法semen
  • 网站的字体安卓优化大师老版本下载
  • 现在很多网站都是wordpress怎样推广自己的广告
  • c 做网站网站seo外贸网站制作
  • 台湾php网站空间定制网站开发公司
  • 毕业设计做app还是做网站深圳整站全网推广
  • 做模具的都有什么网站搜索引擎排名2022
  • 如何做公司o2o网站长沙网红打卡景点排行榜
  • 万网可以花钱做网站吗最近一周的重大热点新闻
  • 婚庆网站建设长沙电商优化
  • 店铺网站怎么建免费域名的网站
  • 网站做多个单页链接海洋网络推广效果
  • 娄底网站建设方案购买链接平台
  • 网站导航广告怎么做软文网站发布平台
  • 建网站挣钱 优帮云手机优化助手下载
  • 标准网站是哪个推广公众号的9种方法