TestNG:一个超越JUnit和NUnit的新测试框架

发表于:2017-8-17 17:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

#
TestNG
分享:
  TestNG是一个源于JUnit和NUnit但有所超越的新测试框架。TestNG引入的一些新功能使自己更强大和易用:
  注解。
  可以在任意的大线程池中,使用各种策略运行测试(所有方法都可以拥有自己的线程或者每个测试类拥有一个线程等等)。
  代码多线程安全测试
  灵活的测试配置。
  支持数据驱动测试(@DataProvider)。
  支持参数。
  强大的执行模型(不再用TestSuite)。
  支持各种工具和插件(Eclipse、IDEA、Maven等……)。
  可以更灵活地嵌入BeanShell。
  默认JDK运行时功能和日志记录(无依赖关系)。
  依赖应用服务测试的方式。
  TestNG旨在涵盖所有类型测试的,如单元测试功能测试、端到端测试、集成测试等等……
  我开始使用TestNG是出于对一些JUnit缺陷的无奈。我把这些缺陷记录在博客和这里。阅读这些条目或许会让你更能体会到我试用TestNG所想达到的目的。你也可以快速浏览一下主要特性概述和一个描述具体示例的文章,示例使用了几种TestNG特性提供更直观和高可维护性的测试设计。
  这是一个非常简单的测试:
  package example1;
  import org.testng.annotations.*;
  public class SimpleTest {
  @BeforeClass
  public void setUp() {
  // code that will be invoked when this test is instantiated
  }
  @Test(groups = { "fast" })
  public void aFastTest() {
  System.out.println("Fast test");
  }
  @Test(groups = { "slow" })
  public void aSlowTest() {
  System.out.println("Slow test");
  }
  }
  这个方法setUp()在测试类被创建后,其它任何测试方法运行前被调用。在这个例子中,我们要运行快速组,所以aFastTest()被调用时aSlowTest()则被跳过。
  注意事项:
  做上述事情不需要扩展类或实现接口。
  尽管上面的示例使用JUnit的惯例,但是我们的方法可以叫做任何你喜欢的名字。是注解告诉TestNG它们是什么。
  一个测试方法可以属于一个或多个组。
  当你编译完你的测试类到build目录,你可以通过命令行运行一个ant的任务或者一个XML文件来调用你的测试:
  <project default="test">
  <path id="cp">
  <pathelement location="lib/testng-testng-5.13.1.jar"/>
  <pathelement location="build"/>
  </path>
  <taskdef name="testng" classpathref="cp" classname="org.testng.TestNGAntTask" />
  <target name="test">
  <testng classpathref="cp" groups="fast">
  <classfileset dir="build" includes="example1/*.class"/>
  </testng>
  </target>
  </project>
  使用ant去调用:
  c:> ant
  Buildfile: build.xml
  test:
  [testng] Fast test
  [testng] ===============================================
  [testng] Suite for Command line test
  [testng] Total tests run: 1, Failures: 0, Skips: 0
  [testng] ===============================================
  BUILD SUCCESSFUL Total time: 4 seconds
  你可以浏览你的测试的结果:
  start test-output\index.html (on Windows)
  需求
  TestNG需要JDK 7或更高版本。
  邮件清单
  在Google Groups上可以找到用户邮件清单。
  如果你有兴趣为TestNG工作,可以加入 developer mailing-list。
  如果你只是想知道TestNG的最新版本信息,你可以加入 TestNG announcement mailing-list。
  项目链接
  如果你有兴趣为TestNG或者一个IDE的插件做贡献,你可以在这里找到他们:
  TestNG
  Eclipse plug-in
  IDEA IntelliJ plug-in
  NetBeans plug-in
  错误报告
  如果你认为你发现一个错误,可以这样报告它:
  创建一个小项目,能使我们能够重现这个bug。在大多数情况下,一个或两个Java源文件和testng.xml文件应该足够了。然后你可以压缩后用电子邮件发到 testng-dev mailing-list 或把它放在一个开源的托管网站,如github或Google code等,用邮件通知testng-dev让我们知道。请确保这个项目是自我包含这样我们可以马上构建(删除依赖外部或自主框架等……)。
  如果你观察到的缺陷在Eclipse插件,确保你的示例项目包含.project和.classpath文件。
  文件错误。
  要了解更多信息,你可以下载TestNG,阅读手册 或这浏览的上面的链接.
  许可证
  Apache 2.0
  官方网站:http://testng.org/
  开源地址:https://github.com/cbeust/testng.git

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号