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

南沙网站开发爱站长工具综合查询

南沙网站开发,爱站长工具综合查询,三级分销合法不,怎么做网站报价表目录 什么是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.yidumall.com/news/107080.html

相关文章:

  • 2019网站怎么做免费seo网站
  • 辽宁省网站备案注销刷链接浏览量网站
  • 复制网站文章注意事项河南网站推广
  • 四川省人民政府驻厦门办事处重庆关键词优化服务
  • 苹果免费网站软件品牌营销是什么
  • 更改了网站关键词后要怎么做sem电子扫描显微镜
  • 中国证券监督管理委员会投诉电话莆田百度seo公司
  • 广州市网站优化公司品牌推广与传播怎么写
  • 认证空间如何显示网站seo去哪学
  • 温州市网站营销比较好的知名公司有哪些
  • 文具网站建设策划书武汉百度seo网站优化
  • 濮阳免费网站建设网页制作接单
  • 微信小程序怎拼做搬家网站新媒体销售好做吗
  • 上海网站营销是什么搜索引擎关键词优化有哪些技巧
  • 辽宁建设工程信息网变更seo关键词分析
  • 北京网络维护公司东莞seo外包公司
  • 网站建设 by 筑巢百度网页版链接地址
  • 服务好的网站建设十大最靠谱it培训机构
  • 国内高端网站定制seo研究中心vip课程
  • 福建省建设厅审查网站利搜网站排名软件
  • 做花瓶的网站优化关键词排名seo
  • 深圳各大网站制作哪家公司好网站推广经验
  • 简单自适应网站网站建设在线建站
  • 公司网站设计怎么做制作app软件平台
  • 目前做系统比较好的网站品牌推广思路
  • 网站开发委托合同如何利用互联网进行宣传推广
  • 推荐常州网站建设大数据查询平台
  • 宜兴做网站哪家好深圳网络营销渠道
  • 工程从立项到竣工流程真实有效的优化排名
  • 建设网站需要花钱吗企业门户网站