python可以测试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\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包裹...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux内核编程-内核态文件操作
- 下一篇: python apscheduler 脚