• [Eclipse笔记]Give TestNG a try in Eclipse.



    自从接触J2SE 5.0以来,似乎Cedric Beust这个名字就在脑海中挥之不去,大约是跟他在java.sun.com的一篇对J2SE 5.0新特性的介绍文章有关吧,其实这个法国人给人留下印象最深的是他基于JUnit和J2SE 5.0的注解(Annotation)的思想创作的测试工具:TestNG。

    用过JUnit的朋友,尤其是经常使用的朋友大概会跟他有同感,那就是JUnit有些时候功能显得太单调,不够灵活,但是很少有人像他那样自己另起炉灶去写一个自己的测试框架。也许这就是我们跟发达国家在技术创新上的差距吧,我想这至少是意识上的差距。

    国外各大网站已经前前后后做了不少介绍,国内网站则似乎还没有十分重视这个看上去不起眼的家伙。这究竟是个什么样的工具呢?有些什么特色?大致总结一下就是:

    对Java注解的支持
    利用XML配置测试过程
    不需要实现接口或继承类(如JUnit的TestCase/TestSuite)
    支持独立的方法和分组
    支持并行测试
    测试方法支持传入参数
    任意制定的调用次数和成功率统计

    现在,我们有机会在Eclipse环境尝试这个测试框架了,还要多多感谢TestNG插件的作者Alexandru Popescu牺牲掉那么多自己的时间。怎么样?跃跃欲试?该插件的update site是:http://beust.com/eclipse/,需要注意的是它目前只支持Eclipse 3.1版本,因为Java注解的原因。

    为了简单做一个演示,我随便写了一些代码:

    [FooCalculator.java]
    package sean.home.test;

    public class FooCalculator {
        
        
    public static int increaseByOne(int origVal) {
            
    return ++origVal;
        }


    }


    [FooCalculatorTest.java]
    package sean.home.test;

    import com.beust.testng.annotations.
    *;

    public class FooCalculatorTest {
        
        
    private int origVal;
        
        @Configuration (beforeTestClass 
    = true)
        
    public void setUp() {
            origVal 
    = Integer.MAX_VALUE;
        }

        
        @Test
        
    public void testIncreasByOne() {
            
    int result = FooCalculator.increaseByOne(origVal);
            assert result 
    > 0;
        }

        
    }


    [TestFooCalculator.xml]
    <!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >

    <suite name="Custom Suite" >
        
    <test name="To Test FooCalculator" >
            
    <classes>
                
    <class name="sean.home.test.FooCalculatorTest" />
            
    </classes>
        
    </test>
    </suite>

    完成以后,我们可以在Eclipse中右键选中我们的测试类或者配置文件,选运行TestNG,这样我们就能看到Console视图和TestNG视图中显示的结果了。

    更多信息,参考:http://beust.com/testng/。希望对NUnit的爱好者、学习者们也有帮助。
  • 相关阅读:
    在一台Linux服务器上安装多个MySQL实例(二)--使用单独的MySQL配置文件
    在一台Linux服务器上安装多个MySQL实例(一)--使用mysqld_multi方式
    MySQL复制(四)--多源(主)复制
    MySQL复制(三)--基于全局事物标识符(GTID)配置复制
    类加载机制详解
    字符串常量池理解
    JVM内存模型
    Java设计模式之单例模式
    forkjoin及其性能分析,是否比for循环快?
    集合排序Comparable和Comparator有什么区别?
  • 原文地址:https://www.cnblogs.com/sean/p/137155.html
Copyright © 2020-2023  润新知