首页 存档 技术 查看内容

【Java资源大全】TestNG:一个超越JUnit和NUnit的新测试框架

2018-3-30 13:00 |来自: 互联网 275 0

摘要: (点击上方公号,可快速关注) 来源:http://hao.jobbole.com/ 作者:伯乐在线 - superXiaoFan TestNG是一个源于JUnit和NUnit但有所超越的新测试框架。TestNG引入的一些新功能使自己更强大和易用: 注解。 可以 ...

(点击上方公号,可快速关注)


来源:http://hao.jobbole.com/

作者:伯乐在线 - superXiaoFan

TestNG是一个源于JUnit和NUnit但有所超越的新测试框架。TestNG引入的一些新功能使自己更强大和易用:

  • 注解。

  • 可以在任意的大线程池中,使用各种策略运行测试(所有方法都可以拥有自己的线程或者每个测试类拥有一个线程等等)。

  • 代码多线程安全测试。

  • 灵活的测试配置。

  • 支持数据驱动测试(@DataProvider)。

  • 支持参数。

  • 强大的执行模型(不再用TestSuite)。

  • 支持各种工具和插件(Eclipse、IDEA、Maven等……)。

  • 可以更灵活地嵌入BeanShell。

  • 默认JDK运行时功能和日志记录(无依赖关系)。

  • 依赖应用服务测试的方式。

TestNG旨在涵盖所有类型测试的,如单元测试、功能测试、端到端测试、集成测试等等……

我开始使用TestNG是出于对一些JUnit缺陷的无奈。我把这些缺陷记录在博客和这里。阅读这些条目或许会让你更能体会到我试用TestNG所想达到的目的。你也可以快速浏览一下主要特性概述和一个描述具体示例的文章,示例使用了几种TestNG特性提供更直观和高可维护性的测试设计。

这是一个非常简单的测试:

package example1;

import org.testng.annotations.*;

public class **Test {

@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文件来调用你的测试:

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部