使用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\n",

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

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

python可以测试java的代码吗_使用python做你自己的自动化测试--对Java代码做单元测试 (2)-导入第三方jar包裹...相关推荐

  1. cmd库的导入Java,在cmd命令窗口导入第三方jar包来运行java文件

    在cmd命令窗口导入第三方jar包来运行java文件,以下测试都是基于window环境,Linux环境没有测试. 1.编译 使用命令javac -cp或者javac -classpath 本机测试:如 ...

  2. c++代码好玩_一行Python代码能干嘛?快来看看吧!有表白利器哦

    python有很多优雅有趣的代码写法,同时还很简短,以至于当我刚开始接触这个编程语言的时候,就爱不释手.而前几天的编程语言榜单中python也超越了java成为了第一,挺替python开心的.pyth ...

  3. gtest测试框架使用详解_【python】新手小白必看,教你如何使用全功能Python测试框架 - python秋枫...

    大家好,我是在升职加薪道路上越奋斗头发越少的阿茅. 今天来跟想入门还徘徊在门外的小白们聊一聊 1.安装和简单使用 2.配置文件 3.断言 一. 第1步 (安装和简单使用) pytest是一个非常成熟的 ...

  4. python登录代码思路_用python登录Dr.com思路以及代码分享

    用python登录Dr.com思路以及代码分享 发布于 2014-08-28 22:31:52 | 192 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向对 ...

  5. python基础代码技巧_写Python必须知道的这几个代码技巧!你会吗?

    Python是入门容易精通难,大家平时要养成记录的习惯,好的代码要记录下来,学会总结,经常翻一翻会有收获!今天我来分享一些我自己记录的代码结构,欢迎拍砖! 01. 简洁的表达式 点评:Python因为 ...

  6. python天勤金叉编程代码大全_这些Python编程黑科技,装逼指南,高逼格代码,让你惊叹不已...

    1.单行写一个评级组件 "★★★★★☆☆☆☆☆".slice(5 - rate, 10 - rate);定义一个变量rate是1到5的值,然后执行上面代码,看图 才发现插件什么的都 ...

  7. java小恐龙游戏_用Python实现谷歌的小恐龙游戏

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 谷歌流量器中有个很有名的彩蛋:当你网络出现问题时,就会出现一个"小恐龙游戏&quo ...

  8. python控制台执行代码字符串_编写Python脚本以使用控制台命令执行

    研究是在底部,阅读之前...谢谢.在 我必须编写一个运行SQL查询的Python脚本.我创建了一个主类,名为SQLQuery.每个SQLQuery实例表示一个查询.脚本的结构必须如下所示:class ...

  9. python交互式编程入门先学什么_为什么 Python 对于编程入门学习来说,是一门很棒的语言...

    在这篇文章里,我会来阐述下为什么我觉得 Python 对于计算机编程入门教学来说是一门很棒的编程语言(对基础编程课程更多观点可以查看这篇文章).这也是从我针对初学者Python 编程教学过程中获得并总 ...

最新文章

  1. jQuery绑定事件的三种常见方式(bind、one、【change、click、keydown、hover】)
  2. Python 三十大实践、建议和技巧(附代码链接)
  3. js中各种跨域问题实战小结
  4. MVC 3 基本操作增加修改
  5. 任正非之女姚安娜正式出道
  6. pillow api
  7. java多线程具体总结
  8. python函数和模块有什么关键特性_【Python函数与模块】(2)函数的特点
  9. QQ2011的DD包密码验证报文解密密钥计算困惑之二
  10. iOS Unicode转中文(UTF-8)
  11. java excel通用导入类_java excel 文件导入通用接口
  12. Python实现APP自动化发微信群消息。这才是内卷的极致。
  13. 【STM32训练—SIM900A模块】第二篇、STM32驱动SIM900A发送中文和英文短信
  14. linux shell脚本教程
  15. c语言文件指针重新定向,C语言rewind()函数:将文件指针重新指向文件开头
  16. 案例 | 巴别鸟助推WE+管理入驻企业文档资料
  17. 计算机期末总结ppt课件,计算机期末总结
  18. 微信mars学习笔记
  19. 如何用算法绘制一张上海外滩夜景图
  20. 乌镇互联网大会发布15项世界领先科技成果

热门文章

  1. java config 类_Spring ----JavaConfig类代替XML配置Bean
  2. ubuntu ifconfig只有lo没有ens33的问题
  3. pytorch之with torch.no_grad
  4. 信息抽取--关键词提取
  5. 预科教育计算机基础知识重点归纳,民族预科班计算机教育论文
  6. java js中 function函数报错_浅析JS中对函数function的理解(基础篇)
  7. GC算法 垃圾收集器
  8. CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构区别...
  9. Leetcode(11)-盛最多水的容器
  10. bzoj4380[POI2015]Myjnie dp