精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Jython開發(fā)的JUnit測試包

開發(fā) 后端
本文講述如何使用Jython開發(fā)JUnit測試包。開發(fā)人員有多種理由決定自動化單元測試。許多人甚至進(jìn)一步發(fā)揮它,自動化這些測試的定位和執(zhí)行。

JUnit 測試框架被越來越多的開發(fā)小組所共同使用。歸功于各種各樣的測試裝具模塊,現(xiàn)在可以測試構(gòu)成任何 Java 應(yīng)用程序的幾乎每一個組件。事實上,幾乎整個二級市場似乎都是用圍繞 Junit 建立的。包括 Cactus、jfcUnit、XMLUnit、DbUnit 和 HttpUnit 這樣的裝具模塊都可以免費供開發(fā)人員用于測試應(yīng)用程序。隨著系統(tǒng)的復(fù)雜程度的增加,并且有這么多工具可供使用,沒有什么理由不依靠單元測試。

不過,開發(fā)人員不僅僅是程序員。我們與用戶交互以修復(fù) bug 并確定需求。我們參加會議并進(jìn)行電話推銷。我們完成一些(有時全部)質(zhì)量保證功能。既然有這么多責(zé)任,希望盡可能自動化就是自然而然的了。因為好的團(tuán)隊(除了其他事情外)會進(jìn)行大量測試,希望自動化不同的開發(fā)過程的人常常會對這一領(lǐng)域進(jìn)行詳細(xì)研究。

自動化單元測試

有許多種自動化所有項目測試用例的定位和執(zhí)行的方法。一種解決方案是聯(lián)合使用 Ant 的 junit 任務(wù)與嵌入的 fileset 任務(wù)。這樣就可以包括和排除特定目錄中的文件(基于文件名樣式)。另一種選擇是使用 Eclipse 的一個功能,它可以指定所有測試所在的和執(zhí)行的目錄。前一種選擇提供了對運行的測試進(jìn)行過濾的靈活性(并且由于它是一個純粹的無頭(headless)Java 應(yīng)用程序,可以運行在幾乎所有地方),后一種選擇可以調(diào)試“動態(tài)”包。是否可以結(jié)合這兩種方式的強大和靈活性?

有了 Python 編程語言的 Java 平臺實現(xiàn)——Jython,回答是響亮的“可以!”(如果不熟悉 Jython開發(fā),應(yīng)當(dāng)在繼續(xù)本文之前補充這方面知識,更多信息請參閱后面的 參考資料)。利用 Jython 的強大和優(yōu)雅,可以維護(hù)一個定位文件系統(tǒng)、搜索匹配某種樣式的類和動態(tài)編譯 JUnit TestSuite 類的腳本。這個 TestSuite 類像所有其他靜態(tài)定義的類一樣,可以用喜愛的調(diào)試程序容易地調(diào)試。(在本文中使用的例子假定使用的是 Eclipse IDE,不過,我在這里描述的技術(shù)不用做很多修改就可以用于大多數(shù)其他 IDE。)

在進(jìn)行任何設(shè)計決定時,必須對所做的選擇和決定的影響進(jìn)行權(quán)衡。在這里,為了得到調(diào)試動態(tài)生成的測試包的能力,必須增加額外的復(fù)雜性。不過,這種復(fù)雜性被 Jython 自身所減輕了:Jython 經(jīng)過很好測試并得到很好的支持,并且是開放源代碼的。而且,Python 越來越成為面向?qū)ο蟮摹⑵脚_獨立的編程的事實上的標(biāo)準(zhǔn)。出于這兩種原因,采用 Jython開發(fā) 的風(fēng)險很少,特別是它提供了這樣的好處:在創(chuàng)建和調(diào)試動態(tài)生成的 JUnit TestSuite 類方面具有無可匹敵的靈活性。

如果是否采用 Jython 是主要的考慮,那么即使不使用它也可以在解決原來的問題方面有所進(jìn)展。不使用 Jython 的話,可以用一個 Java Property 文件存儲一組類、目錄和包,以在包中加入或者排除測試。不過,如果選擇使用 Jython,就可以利用整個 Python 語言和運行時來解決選擇執(zhí)行哪些測試的問題。Python 腳本比 Java Property 文件靈活得多,它只受限于您的想像力。

利用 Jython 與 Java 平臺的無縫集成可以創(chuàng)建靜態(tài)定義的、然而是動態(tài)構(gòu)建的 TestSuite 類。有大量關(guān)于 JUnit 的教程,不過還是看下面這兩行代碼作為復(fù)習(xí)。清單 1 是靜態(tài)構(gòu)建 TestSuite 類的一個例子(這個例子取自 JUnit: A Cook's Tour,有關(guān)它和其他 JUnit 資源的鏈接請參閱 參考資料):

清單 1.靜態(tài)定義 TestSuite

  1. public static Test suite() {  
  2.     return new TestSuite( MoneyTest.class );  

清單 1 表明 TestSuite 是由 Test 類的類實例組成的。這個裝具模塊完全利用了這一點。為了分析這個工具的代碼,應(yīng)從 參考資料中下載本文的示例 JAR 文件。這個文檔包含兩個文件:DynamicTestSuite.java 和 getalltests.py,前者是一個用 Phthon 腳本動態(tài)生成 TestSuite 的 JUnit 測試裝具模塊,后者是一個搜索匹配特定樣式的文件的 Python 腳本。DynamicTestSuite.java 使用 getalltests.py 構(gòu)建 TestSuite 。可以修改 getalltests.py 以更好地適合自己的項目的需要。

了解測試裝具模塊

代碼是如何工作的?首先,指派 getalltests.py 獲取一組要執(zhí)行的 Test 類。然后,使用 Jython API 將這個列表從 Python 運行時環(huán)境中提取出來。然后使用 Java Reflection API 構(gòu)建在表示 Test 類名的列表中的 String 對象的類實例。最后,用 JUnit API 將 Test 添加到 TestSuite 中。這四個庫的相互配合可以實現(xiàn)您的目標(biāo):動態(tài)構(gòu)建的 TestSuite 可以像靜態(tài)定義的那樣運行。

看一下清單 2 中的 JUnit suite 清單。它是一個公開 public static TestSuite suite() 方法簽名的 TestCase 。由 JUnit 框架調(diào)用的 suite() 方法調(diào)用 getTestSuite() , getTestSuite() 又調(diào)用 getClassNamesViaJython() 以獲取一組 String 對象,其中每一個對象表示一個作為包的一部分的 TestCase 類。

清單 2. 動態(tài)定義 TestSuite

  1. /**  
  2.  * @return TestSuite A test suite containing all our tests (as found by Python script)  
  3.  */ 
  4. private TestSuite getTestSuite() {  
  5.     TestSuite suite = new TestSuite();  
  6.     // get Iterator to class names we're going to add to our Suite  
  7.     Iterator testClassNames = getClassNamesViaJython().iterator();  
  8.     while( testClassNames.hasNext() ) {  
  9.         String classname = testClassNames.next().toString();  
  10.         try {  
  11.             // construct a Class object given the test case class name  
  12.             Class testClass = Class.forName( classname );  
  13.             // add to our suite  
  14.             suite.addTestSuite( testClass );  
  15.             System.out.println( "Added: " + classname );  
  16.         }  
  17.         catch( ClassNotFoundException e ) {  
  18.             StringBuffer warning = new StringBuffer();  
  19.             warning.append( "Warning: Class '" ).append( classname ).append( "' not found." );  
  20.             System.out.println( warning.toString() );  
  21.         }  
  22.     }  
  23.     return suite;  

在開始時,要保證設(shè)置了正確的系統(tǒng)屬性。在內(nèi)部,Jython 將使用 python.home 屬性來定位它所需要的文件。最終會調(diào)用 getClassNamesViaJython() 方法,在這里面會有一些奇妙的事情發(fā)生,如在清單 3 中將會看到的。

清單 3. 從 Python 運行時提取 Java 對象

  1. /**  
  2.  * Get list of tests we're going to add to our suite  
  3.  * @return List A List of String objects, each representing class name of a TestCase  
  4.  */  
  5. private List getClassNamesViaJython() {  
  6.     // run python script  
  7.     interpreter.execfile( getPathToScript() );  
  8.     // extract out Python object named PYTHON_OBJECT_NAME  
  9.     PyObject allTestsAsPythonObject = interpreter.get( PYTHON_OBJECT_NAME );  
  10.     // convert the Python object to a String[]  
  11.     String[] allTests = (String[]) allTestsAsPythonObject.__tojava__( String[].class );  
  12.     // add all elements of array to a List  
  13.     List testList = new ArrayList();  
  14.     testList.addAll( Arrays.asList( allTests ) );  
  15.     return testList;  
  16. }  
  17.                   

首先,對 Python 文件進(jìn)行判斷。然后,從 Python 運行時提取出一個 PyObject 。這就是得到的對象,它包含將構(gòu)成測試包的所有測試用例的類名(記住 -- PyObject 是 Python 對象的 Java 運行時對應(yīng)物)。然后創(chuàng)建具體的 List 并用 PyObject 填充它,使用 __tojava__ 指示 PyObject 將其內(nèi)容轉(zhuǎn)換為一個 Java String 數(shù)組。最后,將控制返回 getTestSuite() ,在這里裝載 Jython 標(biāo)識的測試用例,并將它們添加到組合包(composite)中。

在Jython開發(fā)環(huán)境中安裝測試裝具模塊

現(xiàn)在對于測試裝具模塊如何工作已經(jīng)有了很好的認(rèn)識,可能迫不及待要自己試試它了。您將需要完成以下步驟以配置 Eclipse 來運行這個裝具模塊。(如果使用不同的 IDE,應(yīng)當(dāng)可以容易地針對您的環(huán)境修改這些步驟。)

安裝 Jython 2.1,如果還沒安裝的話。(鏈接請見 參考資料)。

拷貝 getalltests.py 到主目錄。

編輯 getalltests.py 第 25 行以指定到源文件的根路徑,會搜索在這個位置下的所有目錄中與 org 包中 *Text.java 匹配的文件名。

如果有必要,修改第 54 行以改變根包名(例如,改為 com)。

將 DynamicTestSuite.java 拷貝到源樹中。

將以下 JAR 添加到 Eclipse 項目中:

junit.jar (JUnit 框架二進(jìn)制文件,下載信息請參閱 JUnit 的 Web 網(wǎng)站)。

jython.jar(Jython 二進(jìn)制文件,位于 Jython 安裝目錄)。

將 DynamicTestSuite 類裝載到 Eclipse Java 源文件編輯器中。執(zhí)行以下步驟之一:

在 Package Explorer 視圖中選擇 DynamicTestSuite ,或者

按 Ctrl+Shift+T并在 Choose Type 輸入字段鍵入 DynamicTestSuite 。

從文件菜單欄選擇 Run,然后選擇 Debug...。

選擇 JUnit配置。

單擊 New按鈕。將會創(chuàng)建一個新的 JUnit 目標(biāo), DynamicTestSuite 應(yīng)當(dāng)預(yù)填入 Test Class 字段。

選擇 Arguments選項卡。

在 VM 參數(shù)文本框中鍵入 -Dpython.home=<path where you installed Jython> 。

單擊 Debug按鈕。

變!現(xiàn)在就有了一個具體的 JUnit TestCase 類,可以像靜態(tài)定義的包那樣處理它。設(shè)置邊界并進(jìn)行調(diào)試!不需要修改 Test 類,裝具模塊將構(gòu)建一個包,就像您顯式將每一個 Class 對象編寫到包中一樣。如要執(zhí)行測試,可以通過喜愛的調(diào)試器、編譯工具(如 Ant 或 CruiseControl),或者一個 JUnit 內(nèi)含的 test runner 調(diào)用這個裝具模塊。

擴(kuò)展這個裝具模塊

我相信您注意到了除非在運行前修改源代碼,否則這個裝具模塊只能用于一個項目。可以容易地擴(kuò)展這個裝具模塊讓它支持多個項目。一種簡單的方式是修改 getPathToScript() 以使用指定特定于項目的屬性的系統(tǒng)屬性。

【編輯推薦】

  1. 創(chuàng)建Jython類的過程探討
  2. 輕松創(chuàng)建Jython全局函數(shù)
  3. 直接在源文件中編寫Jython代碼
  4. Jython入門指導(dǎo):語言特性簡介
  5. Jython的字符串操作和函數(shù)
責(zé)任編輯:yangsai 來源: IBMDW
相關(guān)推薦

2009-07-16 13:09:46

Jython安裝

2011-03-30 16:54:13

JUnit

2009-06-19 16:26:51

JUnit測試骨架

2009-07-14 15:20:25

Jython腳本Jython解釋器

2009-07-10 17:33:39

jython語言什么是JythonJython

2013-01-07 13:54:17

Android開發(fā)JUnit單元測試

2011-11-18 15:18:41

Junit單元測試Java

2009-07-14 18:45:26

Jython開發(fā)特性

2011-08-11 13:02:43

Struts2Junit

2012-02-07 09:08:50

Feed4JUnitJava

2009-07-14 15:27:17

Jython腳本示例

2009-07-16 14:26:44

Python和Jyth

2009-07-15 17:43:20

Jython類

2009-07-10 18:10:18

Jython編寫SerJython

2012-03-13 16:14:09

JavaJUnit

2020-12-30 07:08:27

Java方法測試

2009-07-15 18:29:22

Jython應(yīng)用

2009-07-15 16:29:39

Jython連接JavJavaUtils模塊

2009-10-09 15:18:05

Jython

2009-07-14 18:34:22

Jython操作符重載
點贊
收藏

51CTO技術(shù)棧公眾號

欧美www在线| 7777精品久久久大香线蕉 | 秋霞影院一区| 激情av一区二区| 亚洲国产日韩欧美| 99精品国产99久久久久久97| 日韩亚洲在线| www.色综合| av鲁丝一区鲁丝二区鲁丝三区| 色成人免费网站| 亚洲无人区一区| 亚洲开发第一视频在线播放| 色呦呦视频在线| 激情久久五月天| 91大神福利视频在线| 日本精品在线免费观看| 久久av综合| 欧美精品一区二区精品网| 男女男精品视频站| 538视频在线| 亚洲欧洲另类国产综合| 欧美欧美一区二区| 亚洲国产精品国自产拍久久| 日韩高清一级片| 78m国产成人精品视频| 精品国产精品国产精品| 精品久久影院| 亚洲欧美日韩国产中文| 精品影片一区二区入口| 久久久久久久久成人| 欧美日韩精品综合在线| 国产偷人视频免费| 亚洲天堂资源| 精品久久久久久| 天堂…中文在线最新版在线| 亚洲性图自拍| 亚洲天堂精品视频| 亚洲一区二区三区免费观看| 国产在线自天天| 久久精品网站免费观看| 麻豆av一区二区三区| 污视频在线免费| eeuss鲁片一区二区三区在线观看| 91在线视频成人| 97人妻精品一区二区三区软件 | 欧美精品 - 色网| 91精品国产经典在线观看| 色噜噜偷拍精品综合在线| 免费av手机在线观看| 俄罗斯一级**毛片在线播放| 依依成人综合视频| 日韩a级黄色片| 欧美男男video| 亚洲一区二区三区不卡国产欧美| 青青视频免费在线| 成人高潮aa毛片免费| 亚洲国产精品视频| 亚欧无线一线二线三线区别| 美女扒开腿让男人桶爽久久软| 天天色天天爱天天射综合| 国产一级爱c视频| 深夜在线视频| 欧美在线不卡一区| 香蕉视频999| 视频精品二区| 日韩av在线精品| 在线免费观看日韩av| 精品久久中文| 久久网福利资源网站| 免费视频一二三区| 一本久久综合| 国产精品久久久久91| 国产精品女人久久久| 国产91富婆露脸刺激对白| 国产精品一区二区三区免费观看 | 成人黄色在线视频| 欧美激情论坛| 美女羞羞视频在线观看| 亚洲私人黄色宅男| 青青草成人免费在线视频| 欧美大胆成人| 在线不卡的av| 久久久久国产精品无码免费看| 久久91麻豆精品一区| 中文字幕亚洲激情| 久久久综合久久| 亚洲欧美成人| 亚洲aⅴ日韩av电影在线观看 | 波多野结衣大片| 国产一区二区在线视频| 精品欧美国产一区二区三区不卡| 国产最新视频在线| 一区二区三区四区在线免费观看 | 国产精品123区| 久久久一本精品99久久精品| 日本电影全部在线观看网站视频| 亚洲在线一区二区三区| 日韩欧美黄色大片| 亚洲电影一区| 在线成人中文字幕| 日韩精品一区二区不卡| 黑人精品欧美一区二区蜜桃| 精品一区国产| 影音先锋中文在线视频| 欧美最猛黑人xxxxx猛交| 人妻少妇偷人精品久久久任期| 亚洲三级性片| 久久久免费高清电视剧观看| 亚洲中文字幕在线一区| 26uuu成人网一区二区三区| 国产一区一区三区| 日本成人伦理电影| 亚洲成年人在线| 开心激情五月网| 久久久久网站| 国产精品视频入口| 99在线视频观看| 欧美性三三影院| 国产色视频一区二区三区qq号| 欧美日一区二区在线观看 | 久久久久久久一| 国产精品高潮呻吟av| 国产亚洲1区2区3区| 亚洲熟妇无码一区二区三区导航| 免费精品一区二区三区在线观看| 在线看欧美日韩| 在线观看日本视频| av成人老司机| 蜜桃传媒一区二区三区| 91久久偷偷做嫩草影院电| 久久久国产一区二区三区| 制服丝袜在线一区| 国产日韩精品一区| 国产一区二区视频免费在线观看| 精品国产一区二区三区不卡蜜臂| 欧美精品在线免费播放| 国产美女免费视频| 中文字幕亚洲欧美在线不卡| 成人亚洲精品777777大片| 精品国产乱码久久久久久果冻传媒 | 日韩成人在线播放| 日本网站免费观看| 成人av网站在线观看| 免费看毛片的网址| 加勒比久久高清| 性亚洲最疯狂xxxx高清| 色wwwwww| 欧美三级欧美成人高清www| 久久久午夜精品福利内容| 亚洲欧洲午夜| 精品欧美一区二区三区久久久| 黄毛片在线观看| 日韩黄色在线免费观看| 亚洲熟妇无码乱子av电影| www激情久久| 不卡av免费在线| 91亚洲成人| 亚洲综合一区二区不卡| 婷婷色在线播放| 亚洲国产精品中文| 国产成人无码一区二区在线播放| 久久精品一区八戒影视| 蜜臀av免费观看| 9999国产精品| 国产精品久久久久久久久婷婷| av影院在线免费观看| 亚洲人成免费电影| 91国内精品视频| 一区二区欧美国产| 黄色片视频免费观看| 日韩av中文在线观看| 国产免费色视频| 一区三区自拍| 人人爽久久涩噜噜噜网站| h网站在线免费观看| 91精品欧美一区二区三区综合在| 久久久久久久久久久97| 91女人视频在线观看| 牛夜精品久久久久久久| 欧美日韩少妇| 欧洲久久久久久| 国产日本亚洲| 98精品国产高清在线xxxx天堂| 成年人在线观看网站| 日韩一区二区三区免费观看| 四虎精品永久在线| 中文字幕亚洲电影| 亚洲一区二区乱码| 麻豆精品国产传媒mv男同| 欧美高清中文字幕| 成人精品天堂一区二区三区| 国产精品10p综合二区| 性感美女一区二区在线观看| 欧美成人高清视频| 男操女在线观看| 欧美成人女星排名| 特级西西444www高清大视频| 亚洲福利一区二区三区| 自拍偷拍你懂的| av不卡一区二区三区| 午夜久久久精品| 国产欧美精品久久| 免费观看中文字幕| 国产剧情在线观看一区| 超碰97国产在线| 激情中国色综合| 欧美在线观看视频| 精灵使的剑舞无删减版在线观看| 在线成人中文字幕| 飘雪影院手机免费高清版在线观看 | 欧美极品中文字幕| 国产免费高清一区| 麻豆一二三区精品蜜桃| 国产精品网红直播| 国产欧美一区二区三区精品酒店| 欧美精品18videos性欧| 精产国品自在线www| 尤物九九久久国产精品的特点| 蜜桃91麻豆精品一二三区| 欧美人狂配大交3d怪物一区| 无码视频在线观看| 一本一道综合狠狠老| 精品无码人妻一区二区三区品 | 成人中文字幕合集| 亚洲理论中文字幕| 久久精品国产精品青草| 欧美日韩在线成人| 香蕉视频成人在线观看| 免费看国产曰批40分钟| 欧美日韩理论| 91视频 - 88av| 亚洲成人一区| a级黄色片网站| 99热在线成人| 亚洲综合欧美日韩| 久久一区91| 曰韩不卡视频| 图片区亚洲欧美小说区| 综合国产精品久久久| 日韩欧美午夜| 一级日韩一区在线观看| 久久看人人摘| 一区二区三区四区在线视频| 日韩精品久久久久久久电影99爱| 日韩精品国内| 日韩国产一区| 中国成人在线视频| 亚洲影视一区二区三区| 操bbb操bbb| 在线日韩视频| 能在线观看的av| 日日摸夜夜添夜夜添精品视频 | 日韩视频一二区| 电影午夜精品一区二区三区| 伊人久久亚洲| 国产一区二区三区黄| 四虎5151久久欧美毛片| 欧美成人第一区| 日本久久黄色| 永久免费在线看片视频| 欧美日本不卡| 国产精品免费入口| 日韩av在线发布| 中文字幕66页| 国产mv日韩mv欧美| 亚洲国产精品无码久久久久高潮 | 久久99国产精品久久99果冻传媒| 亚洲va在线va天堂va偷拍| 国产精品一区2区| 91黄色免费视频| 国产网站一区二区| 国产精品精品软件男同| 亚洲综合免费观看高清完整版在线| 国产一级一级片| 色哟哟亚洲精品| 国产精品系列视频| 亚洲福利在线观看| 国产精品一区二区婷婷| 久久中文精品视频| 女海盗2成人h版中文字幕| 国产精品v日韩精品| 成人噜噜噜噜| 精品伊人久久大线蕉色首页| 日本久久综合| 91免费黄视频| 日本伊人午夜精品| 中文字幕18页| 国产免费观看久久| 久久综合成人网| 欧美在线短视频| 人妻妺妺窝人体色www聚色窝| 国产午夜一区二区| 黄页网站大全在线免费观看| 国产成人综合一区二区三区| 涩涩屋成人免费视频软件| 免费中文日韩| 欧美日韩国产欧| 无需播放器的av| 成人av在线播放网站| 日本黄色免费片| 色综合久久久久久久久| 亚洲a视频在线| 正在播放欧美视频| 天堂中文在线播放| 亚洲一区二区中文| 日本不卡二三区| 国产二区视频在线播放| 国产黄色精品视频| 日韩欧美视频免费观看| 欧美日韩一区二区在线播放| 国产黄色高清视频| 日韩视频―中文字幕| 经典三级一区二区| 久久久久久久免费| 激情视频一区| 久久久久中文字幕亚洲精品| 中文字幕av一区二区三区高| 国产成人无码一区二区三区在线| 欧美一区二区三区视频| av国产在线观看| 国产激情久久久久| 小说区图片区色综合区| www插插插无码视频网站| 国产精品一区二区久久精品爱涩| 亚洲黄色网址大全| 在线看一区二区| 你懂的视频在线播放| 性色av一区二区三区红粉影视| 4438全国亚洲精品观看视频| 国产精品99久久久久久大便| 毛片不卡一区二区| 黄色免费一级视频| 欧美在线播放高清精品| 番号在线播放| 国产精品ⅴa在线观看h| 国产一区二区电影在线观看| 欧美激情成人网| 久久久久久久国产精品影院| 国产黄网在线观看| 亚洲欧洲xxxx| 欧美影视资讯| 亚洲v国产v在线观看| 免费观看在线色综合| gv天堂gv无码男同在线观看| 欧美三片在线视频观看 | 国产精品伦一区二区三级视频| 波多野结衣毛片| 在线亚洲欧美视频| 日韩精品一级毛片在线播放| 一区二区三区视频在线播放| 精品一区二区在线看| 丝袜美腿小色网| 精品久久一区二区| 欧美aa免费在线| 日本视频一区二区在线观看| 久久精品国产秦先生| 午夜爽爽爽男女免费观看| 精品国精品国产尤物美女| 91福利在线尤物| 欧美一区亚洲二区| 久久福利视频一区二区| 日韩高清dvd碟片| 精品国产免费人成电影在线观看四季 | 99视频免费播放| 亚洲免费在线视频一区 二区| 国产手机视频在线| 久久久久久亚洲精品中文字幕| 美国一区二区| av五月天在线| 亚洲精品日韩综合观看成人91| 亚洲AV午夜精品| 日韩av手机在线看| 久久精品久久久| 亚洲国产精品成人综合久久久| 色悠悠亚洲一区二区| 日本在线免费网| 国产精品果冻传媒潘| 老司机午夜精品视频在线观看| 四虎影视一区二区| 欧美α欧美αv大片| 欧美人体一区二区三区| 超碰免费在线公开| 94色蜜桃网一区二区三区| 一级片aaaa| 91国语精品自产拍在线观看性色| 成人羞羞网站入口免费| 国产麻豆剧传媒精品国产| 91福利小视频| 中文在线观看免费| 日本一区不卡| 成人综合婷婷国产精品久久免费| 国产精品乱码一区二区视频| 久久人人爽亚洲精品天堂| 欧美福利在线播放网址导航| 日本在线播放一区二区| 精品国产乱码久久久久久虫虫漫画 | 一区二区三区免费网站| 成人在线免费看| 国产精品一码二码三码在线| 美女视频免费一区|