python可以测试java的代码吗_使用python做你自己的自动化测试--对Java代码做单元测试 (2)-导入第三方jar包裹...
使用Jython對(duì)Java做單元測(cè)試,當(dāng)然,為了測(cè)試開發(fā)java代碼。這涉及到引入第三包的問題,如何導(dǎo)入第三方的包? 您可以使用http://blog.csdn.net/powerccna/article/details/37739207 這里的實(shí)現(xiàn)的函數(shù),掃描指定文件夾下的jar包,然后通過sys.path.append()函數(shù)增加到j(luò)ython的sys.path里面。
for jar_file in scan_files("/home/jim/java_jar",postfix=".jar"):
sys.path.append(jar_file)
import 第三方包,必須先append進(jìn)來后才干夠import,要不然會(huì)報(bào)找不到包。有些人在使用過程中說有要同一時(shí)候增加到CLASSPATH里面。我使用的時(shí)候。僅僅是mysql driver這個(gè)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有點(diǎn)不一樣的,FTPClient在這里是個(gè)文件,相應(yīng)Cpython里面叫著一個(gè)模塊,在Cpython里面要初始化FTPClient這個(gè)類。應(yīng)該是ftp=FTPClient.FTPClient(), 由于FTPClient.FTPClient才是真正的類。但這里是ftp=FTPClient(),Jython是java實(shí)現(xiàn)的。遵守java的規(guī)則多點(diǎn)吧。
#!/usr/bin/env jython
#coding=utf-8
import sys
import os
import java
import unittest
import time
#scan_files是在另外一個(gè)地方實(shí)現(xiàn)的函數(shù),這里刪除了函數(shù)的實(shí)現(xiàn)方法,是為了大家看單元測(cè)試這塊清晰
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的結(jié)果。就是為了保持各個(gè)case的獨(dú)立性,確保不會(huì)
#由于前面case的原因影響后繼的測(cè)試
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()執(zhí)行結(jié)果:
[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
版權(quán)聲明:本文博主原創(chuàng)文章,博客,未經(jīng)同意不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的python可以测试java的代码吗_使用python做你自己的自动化测试--对Java代码做单元测试 (2)-导入第三方jar包裹...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux内核编程-内核态文件操作
- 下一篇: SQLServer约束介绍