zoukankan      html  css  js  c++  java
  • 使用python做你自己的自动化测试--对Java代码做单元测试 (2)-导入第三方jar包裹

    使用Jython对Java做单元测试,当然,为了测试开发java代码。这涉及到引入第三包的问题,如何导入第三方的包? 您可以使用http://blog.csdn.net/powerccna/article/details/37739207 这里的实现的函数,扫描指定文件夹下的jar包,然后通过sys.path.append()函数增加到jython的sys.path里面。

    for jar_file in scan_files("/home/jim/java_jar",postfix=".jar"):
        sys.path.append(jar_file)

    import 第三方包,必须先append进来后才干够import,要不然会报找不到包。有些人在使用过程中说有要同一时候增加到CLASSPATH里面。我使用的时候。仅仅是mysql driver这个jar包须要增加到CLASSPATH里面,其它的直接增加到sys.path里面就能够用了。

    这里演示样例第三方包是commons-net-3.3, 能够总这里下载jar包, http://commons.apache.org/proper/commons-net/download_net.cgi


    注意这里from org.apache.commons.net.ftp import FTPClient, 还是和cpython有点不一样的,FTPClient在这里是个文件,相应Cpython里面叫着一个模块,在Cpython里面要初始化FTPClient这个类。应该是ftp=FTPClient.FTPClient(), 由于FTPClient.FTPClient才是真正的类。但这里是ftp=FTPClient(),Jython是java实现的。遵守java的规则多点吧。

    #!/usr/bin/env jython
    #coding=utf-8
    
    import sys
    import os
    import java
    import unittest
    import time
    
    #scan_files是在另外一个地方实现的函数,这里删除了函数的实现方法,是为了大家看单元測试这块清晰
    for jar_file in scan_files("/home/jim/java_jar",postfix=".jar"):
        sys.path.append(jar_file)
    
    #print sys.path
    
    from com.mysql.jdbc import Driver
    import java.sql.Connection
    from java.sql import DriverManager
    import org.apache.commons.net.ftp.FTP;
    from org.apache.commons.net.ftp import FTPClient
    import org.apache.commons.net.ftp.FTPReply
    
    
    def mysql_driver_test(): 
        java.lang.Class.forName('com.mysql.jdbc.Driver')
        conn = DriverManager.getConnection("jdbc:mysql://192.168.19.21:3306/mysql","root","root");
    
    
    class FTPClientTest(unittest.TestCase):
        def setUp(self):
            self.start_time=time.time()
            print "starting
    ", 
            
        def test_login(self):
            ftp=FTPClient()
            ftp.connect("192.168.23.117")
            ftp.login("root","root")
            self.assertEquals(ftp.getReplyCode(),230)
        
        def test_files_list(self):
            #这里之所以又一次登录ftpserver,不重用前面case的结果。就是为了保持各个case的独立性,确保不会
            #由于前面case的原因影响后继的測试
            file_existing=False
            ftp=FTPClient()
            ftp.connect("192.168.23.117")
            ftp.login("root","root")
            
            if ftp.getReplyCode()==230:
                files = ftp.listNames("/export/home/test")
                for fi in files:
                    if "python-2.5-sol10-x86-local.gz" in fi:
                        file_existing=True
                        break
                    
            self.assertEquals(file_existing,True)
            
        def tearDown(self):
            print "cost", time.time()-self.start_time," second"
            print "end"    
    
    if __name__=="__main__":
        unittest.main()
    执行结果:

    [root@host-192-168-53-21 jythontest]# jython importjar.py 
    starting
    cost 0.157999992371  second
    end
    .starting
    cost 0.0529999732971  second
    end
    ----------------------------------------------------------------------
    Ran 2 tests in 0.215s

    OK

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    数字图像处理领域就业前景
    opencv 学习方法
    学习opencv tutorials
    win64+VS2010+OPENCV2.4.9配置问题
    libsvm使用步骤
    生成libSVM的数据格式及使用方法
    一堆应该记住的概念
    static静态变量的理解
    C程第一节课
    扫雷但是不会恭喜
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4915641.html
Copyright © 2011-2022 走看看