junit-testng-zhao

JUnit 4 与 TestNG 的对比

http://www.ibm.com/developerworks/cn/java/j-cq08296/html

http://blog.csdn.net/jmyue/article/details/9041357java

http://www.importnew.com/16270.html数据库

 

TestNGJUnit的相同点:框架

       1. 使用annotation,且大部分annotation相同。eclipse

       2. 均可以进行单元测试(Unit test)。yii

       3. 都是针对Java测试的工具。socket

TestNGJUnit的不一样点:ide

      1. JUnit只能进行单元测试,TestNG能够进行单元测试,功能测试,端到端测试,集成测试等。函数

      2. TestNG须要一个额外的xml配置文件,配置测试的classmethod甚至package工具

      3. TestNG的运行方式更加灵活:命令行、antIDEJUnit只能使用IDE

      4. TestNGannotation更加丰富,好比@ExpectedExceptions@DataProvider等。

      5. 测试套件运行失败,JUnit 4会从新运行整个测试套件。TestNG运行失败时,会建立一个XML文件说明失败的测试,利用这个文件执行程序,就不会重复运行已经成功的测试。

 

  • 一个简单的测试用例

JUnit 中我必须把@BeforeClass 修饰的方法声明为 static,这又要求我把 fixture,即 finder 声明为 static。我还必须把 init() 声明为 publicTestNG,您就会发现不一样。这里再也不须要那些规则了。个人 init() 方法既不是 static,也不是 public

  • 依赖性测试

JUnit 框架想达到的一个目标就是测试隔离。它的缺点是:人们很难肯定测试用例执行的顺序,而这对于任何类型的依赖性测试都很是重要。开发者们使用了多种技术来解决这个问题,例如,按字母顺序指定测试用例,或是更多地依靠 fixture 来适当地解决问题。

JUnit 不一样,TestNG 利用 Test 注释的 dependsOnMethods 属性来应对测试的依赖性问题。有了这个便利的特性,就能够轻松指定依赖方法。例如,前面所说的登陆将在某个方法以前 运行。此外,若是依赖方法失败,它将被跳过,而不是标记为失败。

一旦 TestNG 中出现失败,它就会建立一个 XML 配置文件,对失败的测试加以说明。若是利用这个文件执行 TestNG 运行程序,TestNG 运行失败的测试。

  • 参数化测试

经过在 TestNG XML 配置文件中放入参数化数据,就能够对不一样的数据集重用同一个测试用例,甚至有可能会获得不一样的结果。这种技术完美地避免了只能 假定一切正常的测试,或是没有对边界进行有效验证的状况。

  • 高级参数化测试

尽管从一个 XML 文件中抽取数据会很方便,但偶尔会有些测试须要有复杂类型,这些类型没法用 String 或原语值来表示。TestNG 能够经过它的 @DataProvider 注释处理这样的状况。@DataProvider 注释能够方便地把复杂参数类型映射到某个测试方法。

Junit

  • 如何生成测试代码

  • 运行
  • 运行所有

  • 运行单个方法

  • 生成测试报告(xml形式)

http://blog.sina.com.cn/s/blog_8af106960102v6qh.html

https://www.ibm.com/developerworks/cn/java/j-lo-junit4/

能够生成html形式可是试验没有成功

 

  • Junit测试
  • JUnit中按照顺序执行测试方式
     

http://www.cnblogs.com/nexiyi/p/junit_test_in_order.html

写了一堆的test case,但愿某一些test case必须在某个test case以后执行。好比,测试某一个Dao代码,但愿添加的case在最前面,而后是修改或者查询,最后才是删除,之前的作法把全部的方法都集中到某一个方法去执行,一个个罗列好,比较麻烦。比较幸福的事情就是JUnit4.11以后提供了MethodSorters,能够有三种方式对test执行顺序进行指定

 

  • 平台可以生成测试所须要的初始化和清理方法

https://netbeans.org/kb/docs/java/junit-intro_zh_CN.html#Exercise_31

  • 测试类初始化程序。@BeforeClass 标注将方法标记为测试类初始化方法。测试类初始化方法只能运行一次,而且在测试类中的任何其余方法以前运行。举例来讲,您没必要在测试初始化函数中建立数据库链接并在各测试方法以前建立新链接,您能够在运行测试以前使用测试类初始化函数打开链接。而后,您可使用测试类终结方法来关闭链接。
  • 测试类终结方法。@AfterClass 标注将方法标记为测试类终结方法。测试类终结方法只能运行一次,而且在测试类中的任何其余方法完成以后运行。
  • 测试初始化程序。@Before 标注将方法标记为测试初始化方法。测试初始化方法在测试类中的各测试用例以前运行。运行测试不须要测试初始化方法,可是,若是您须要在运行测试以前初始化一些变量,则可使用测试初始化方法。
  • 测试终结方法。@After 标注将方法标记为测试终结方法。测试终结方法在测试类中的各测试用例以后运行。运行测试不须要测试终结方法,可是,您可能须要使用终结方法来清理运行测试用例时所需的任何数据。
    • !平台自动生成的代码可以指定测试用例间依赖关系

    JUnit 框架主要聚焦于测试的隔离,暂时还不支持这个特性。

    http://blog.csdn.net/lhy_ycu/article/details/45281449

    基于Junit3.8Junit4.x的单元测试详解

    注意事项:
    1
    Junit的原则:keep the bar green to keep the code clean2)测试类与(源代码)目标类的包名尽可能要一致,最终它们都会被编译到同一个目录下面,这样就不用导入源代码所在的包。
    3)
    测试类的命名规则:测试类类名 = 目标类类名前或后加Test; 注意要统一。
    4)
    测试类必须继承TestCase; 测试用例(方法/)与测试用例之间必定是彻底独立的,不容许出现任何的依赖关系。同时也不能依赖测试方法的执行顺序,也就是删除或注释掉某个测试方法后,其余的测试方法依然可以执行。
    5)
    测试源代码的私有方法能够采起两种方式:1、修改目标方法的访问修饰符(private修改成public,通常不推荐);2、使用反射在测试类中调用目标类的私有方法。

     

    • Junit不须要插件安装

    Testng

    官网地址

    http://testng.org/doc/index.html

     

    TestNG for Eclipse 插件安装
    • 第一种

     

     

    • 第二种

    地址输入

    testng - http://beust.com/eclipse

    如何找到该地址

     

     

    TestNG for Eclipse 插件源码

    Testng教程

    http://www.yiibai.com/testng/20130913292.html

    testng_eclipse使用教程

    http://testng.org/doc/eclipse.html#eclipse-viewing

    http://www.ibm.com/developerworks/cn/java/j-test-ng/

    http://www.ibm.com/developerworks/cn/java/j-testng/index.html 包含测试代码连接

     

    testing插件进行测试问题以及解决

    Software caused connection abort: socket write error

    解决从新安装testng插件或者更换eclipse

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息