日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

maven deploy plugin_学习Maven之Maven Surefire Plugin

發布時間:2025/3/20 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 maven deploy plugin_学习Maven之Maven Surefire Plugin 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.maven-surefire-plugin是個什么鬼?

如果你執行過mvn test或者執行其他maven命令時跑了測試用例,你就已經用過maven-surefire-plugin了。maven-surefire-plugin是maven里執行測試用例的插件,不顯示配置就會用默認配置。這個插件的surefire:test命令會默認綁定maven執行的test階段。

maven的生命周期有哪些階段?拉勾IT課小編為大家分解

[validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]


2.maven-surefire-plugin的使用

如果說maven已經有了maven-surefire-plugin的默認配置,我們還有必要了解maven-surefire-plugin的配置么?答案是肯定的。雖說maven-surefire-plugin有默認配置,但是當需要修改一些測試執行的策略時,就有必要我們去重新配置這個插件了。

2.1.配置JUnit

2.1.1.插件自動匹配

最簡單的配置方式就不配置或者是只聲明插件。

???????? org.apache.maven.plugins???????? maven-surefire-plugin???????? 2.19

這個時候maven-surefire-plugin會按照如下邏輯去尋找JUnit的版本并執行測試用例。

if the JUnit version in the project >= 4.7 and the parallel attribute has ANY value???????? use junit47 providerif JUnit >= 4.0 is present???????? use junit4 providerelse???????? use junit3.8.1

2.1.2.插件手動匹配

當然,如果你明確用的是JUnit4.7及以上版本,可以明確聲明:

???????? org.apache.maven.plugins???????? maven-surefire-plugin???????? 2.19???????? ???????????????? ????????????????????????? org.apache.maven.surefire????????????????????????? surefire-junit47????????????????????????? 2.19???????????????? ????????

JUnit4.0(含)到JUnit4.7(不含)的版本,這樣聲明:

???????? org.apache.maven.plugins???????? maven-surefire-plugin???????? 2.19???????? ???????????????? ????????????????????????? org.apache.maven.surefire????????????????????????? surefire-junit4????????????????????????? 2.19???????????????? ????????

JUnit3.8(含)到JUnit4.0(不含)的版本,這樣聲明:

???????? org.apache.maven.plugins???????? maven-surefire-plugin???????? 2.19???????? ???????????????? ????????????????????????? org.apache.maven.surefire????????????????????????? surefire-junit3????????????????????????? 2.19???????????????? ????????

JUnit3.8以下的版本surefire不支持。建議大家用最新的JUnit版本,目前是4.12.

???????? [...]??? ??????? junit??????? junit??????? 4.12??????? test??? ???????? [...]???????

本文的例子我們用的Junit4.12.

2.2.準備測試用例

我們現在準備兩個類,一個被測試的類,一個測試用例.目錄結構如下

現在我們準備一個簡單的類.

package com.qyf404.learn.maven;?public class App {??? public int add(int a, int b) {??????? return a + b;??? }??? public int subtract(int a, int b) {??????? return a - b;??? }}

再創建一個測試用例.

package com.qyf404.learn.maven;?import org.junit.After;import org.junit.Assert;import org.junit.Before;import org.junit.Test;?public class AppTest {??? private App app;??? @Before??? public void setUp() {??????? app = new App();??? }??? @Test??? public void testAdd() throws InterruptedException {??????? int a = 1;??????? int b = 2;??????? int result = app.add(a, b);??????? Assert.assertEquals(a + b, result);??? }??? @Test??? public void testSubtract() throws InterruptedException {???? ???int a = 1;??????? int b = 2;??????? int result = app.subtract(a, b);??????? Assert.assertEquals(a - b, result);??? }??? @After??? public void tearDown() throws Exception {??? }}

2.3.用maven執行測試用例

用maven執行測試用例很簡單,直接運行mvn test就可以.一般我們執行maven打包命令mvn package前maven會默認執行test命令.

qyfmac$ mvn test[INFO] Scanning for projects...[INFO]???????????????????????????????????????????????????????????????????????? [INFO] ------------------------------------------------------------------------[INFO] Building learn-maven 1.0-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ learn-maven ---[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent![INFO] skip non existing resourceDirectory /Users/qyfmac/git/learn-maven/src/main/resources[INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ learn-maven ---[INFO] Changes detected - recompiling the module![WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent![INFO] Compiling 1 source file to /Users/qyfmac/git/learn-maven/target/classes[INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ learn-maven ---[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent![INFO] skip non existing resourceDirectory /Users/qyfmac/git/learn-maven/src/test/resources[INFO] [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ learn-maven ---[INFO] Changes detected - recompiling the module![WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent![INFO] Compiling 2 source files to /Users/qyfmac/git/learn-maven/target/test-classes[INFO] [INFO] --- maven-surefire-plugin:2.19:test (default-test) @ learn-maven ---[WARNING] The parameter forkMode is deprecated since version 2.14. Use forkCount and reuseForks instead.[INFO] Surefire report directory: /Users/qyfmac/git/learn-maven/target/surefire-reports[INFO] Using configured provider org.apache.maven.surefire.junit4.JUnit4Provider?------------------------------------------------------- T E S T S-------------------------------------------------------Running com.qyf404.learn.maven.AppTestTests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec - in com.qyf404.learn.maven.AppTest?Results :?Tests run: 2, Failures: 0, Errors: 0, Skipped: 0?[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 2.622 s[INFO] Finished at: 2015-12-01T11:36:04+08:00[INFO] Final Memory: 14M/228M[INFO] ------------------------------------------------------------------------qyfmac$ ?

其實我們會發現關鍵內容還是JUnit的東西,maven只是作為一個調用器調用了一下這些測試用例.

3.進階

后面讓我們來研究一下maven-surefire-plugin這個插件更多的知識,這些多數都是和配置相關的.

3.1.跳過測試用例

在工作中,很多情況下我們打包是不想執行測試用例的,可能是測試用例不完事,或是測試用例會影響數據庫數據.跳過測試用例執行過程有三個種方法.

3.1.1.在configuration中聲明

在插件的configuration配置中聲明跳過測試用例

??? org.apache.maven.plugins??? maven-surefire-plugin??? 2.19??? ??????? ??????????? org.apache.maven.surefire??????????? surefire-junit47??????????? 2.19??????? ??? ??? ??????? true???

3.1.2.在properties中聲明

在properties配置中聲明跳過測試用例

??? true

??? true

3.1.3.在執行命令中聲明

在執行maven命令時可以聲明跳過測試用例

qyfmac$ mvn test -Dmaven.test.skip=true

qyfmac$ mvn test -DskipTests=true

3.1.4.跳過測試用例優先級排序

首先分兩種情況,一種是配置skipTests,一種是配置maven.test.skip(真要命,聲明位置就三處了,還搞出兩個變量名,一共就是5中情況).

· 如果是配置skipTests, configuration的配置優先級最高,命令中得配置次之, properties的配置最低.

· 即configuration > 命令 > properties

· 如果是配置maven.test.skip,命令中得配置優先級最高, properties的配置最低.
即命令 > properties

· skipTests和maven.test.skip有一個被設置成了true,則跳過測試用例.
即skipTests||maven.test.skip決定是否跳過測試用例執行.

3.2.maven命令執行一個測試用例

很多情況下我們寫完一個測試用例后,想馬上運行一下,看看執行情況.如果用IDE開發,里面一般都有直接運行一個測試用例的方法.但是如果用maven命令達到同樣的效果,就需要加些命令參數了.

比如我們現在再加一個測試用例App2Test.java.

package com.qyf404.learn.maven;?import org.junit.After;import org.junit.Assert;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.JUnit4;?@RunWith(JUnit4.class)public class App2Test {??? private App app;??? @Before??? public void setUp() {??????? app = new App();??? }??? @Test??? public void testAdd() throws InterruptedException {??????? int a = 1;??????? int b = 2;??????? int result = app.add(a, b);??????? Thread.currentThread().sleep(1000);??????? Assert.assertEquals(a + b, result);??? }??? @After??? public void tearDown() throws Exception {??? }?}

直接運行 mvn test是這樣的,它執行了全部測試用例.

qyfmac$ mvn test[INFO] Scanning for projects...[INFO]???????????????????????????????????????????????????????????????????????? [INFO] ------------------------------------------------------------------------[INFO] Building learn-maven 1.0-SNAPSHOT[INFO] ------------------------------------------------------------------------?...?------------------------------------------------------- T E S T S-------------------------------------------------------Running com.qyf404.learn.maven.App2TestTests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.004 sec - in com.qyf404.learn.maven.App2TestRunning com.qyf404.learn.maven.AppTestTests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec - in com.qyf404.learn.maven.AppTest?Results :?Tests run: 3, Failures: 0, Errors: 0, Skipped: 0?[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 2.773 s[INFO] Finished at: 2015-12-01T14:57:00+08:00[INFO] Final Memory: 9M/156M[INFO] ------------------------------------------------------------------------

現在我們用命令mvn test -Dtest=App2Test指定執行App2Test.

qyfmac$ mvn test -Dtest=App2Test[INFO] Scanning for projects...[INFO]???????????????????????????????????????????????????????????????????????? [INFO] ------------------------------------------------------------------------[INFO] Building learn-maven 1.0-SNAPSHOT[INFO] ------------------------------------------------------------------------?...?------------------------------------------------------- T E S T S-------------------------------------------------------Running com.qyf404.learn.maven.App2TestTests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.003 sec - in com.qyf404.learn.maven.App2Test?Results :?Tests run: 1, Failures: 0, Errors: 0, Skipped: 0?[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 3.061 s[INFO] Finished at: 2015-12-01T14:58:59+08:00[INFO] Final Memory: 9M/156M[INFO] ------------------------------------------------------------------------

-Dtest的參數是可以用表達式的.

· 比如執行多個測試用例可以用逗號分開 mvn test -Dtest=App2Test,AppTest.

· 也可以用ant風格的路徑表達式mvn test -Dtest=*2Test,mvn test -Dtest=???2Test.

· 甚至指定具體的測試方法mvn test -Dtest=*Test#testAdd.

· 指定具體包里的測試用例mvn test -Dtest=com/qyf404/learn/maven/*.

3.3.測試用例的包含與例外配置

上面說了,在執行命令時可以指定執行哪個或哪些測試用例,其實在pom.xml里也是可以配置的.
比如打包時執行測試用例AppTest,不執行App2Test,可以這么配置.

??? org.apache.maven.plugins??? maven-surefire-plugin??? 2.19??? ??????? ??????????? org.apache.maven.surefire??????????? surefire-junit47??????????? 2.19??????? ??? ??? ??????? ??????? ??????? ??????????? **/AppTest.java??????? ??????? ??????????? **/App2Test.java??????? ???

和里的配置方式和-Dtest后面的一樣可以配置表達式:

· 指定具體類AppTest.

· 指定具體類AppTest.java.

· 指定具體類AppTest.class.

· 指定具體類com/qyf404/learn/maven/AppTest.class.

· 指定具體類com/qyf404/learn/maven/AppTest.class,App2Test.

· 嘆號[!]表示否定!*2Test.class.

· 使用ant風格的路徑表達式**/*Test.

· 使用ant風格的路徑表達式**/???Test.

· 更復雜的%regex[expr]表達式%regex[com.qyf404.learn.maven.*Test.class].

· 更復雜的%regex[expr]表達式%regex[com.qyf404.*.*Test.class].

· 更復雜的%regex[expr]表達式%regex[com.qyf404.[learn|test].*Test.class],中間的方括號表示或的概念,即learn或test的情況.

· 更復雜的%regex[expr]表達式!%regex[com.qyf404.*.*2Test.class],這里面的嘆號表示否定,即包含不符合該表達式的測試用例.

· 更復雜的%regex[expr]表達式%regex[.*2Test.class],這種配置方式忽略了包前綴,可以理解成倒著匹配全類名.

· 更復雜的%regex[expr]表達式里最好不要有問號[?],而且匹配的是類的全類名.

· 不可以指定具體方法,這種配置是錯誤的*Test#testAdd.

· 不可以指定java文件在%regex[expr]里具體方法,這種配置是錯誤的%regex[com.qyf404.learn.maven.*Test.java].

· 如果同時配置了和,最終執行的測試用例是二者的交集.

3.4.分組執行測試用例

上面我們說了,可以配置這些信息來控制執行哪些測試用例,但是JUnit里有個注解@Category可以對測試用例組分組標記,而用maven執行測試用例時,我們也可以根據這個注解的標記,來確定執行哪組測試用例.

比如我們的測試用例是這樣的:

package com.qyf404.learn.maven;?import org.junit.After;import org.junit.Assert;import org.junit.Before;import org.junit.Test;import org.junit.experimental.categories.Category;??public class AppTest {??? private App app;??? @Before??? public void setUp() {??????? app = new App();??? }??? @Test??? @Category(com.qyf404.learn.maven.FastTests.class)??? public void testAdd() throws InterruptedException {??????? int a = 1;??????? int b = 2;??????? int result = app.add(a, b);??????? System.out.println("---" + Thread.currentThread().getName());? ??????Assert.assertEquals(a + b, result);??? }??? @Test()??? @Category(com.qyf404.learn.maven.SlowTests.class)??? public void testSubtract() throws InterruptedException {??????? int a = 1;??????? int b = 2;??????? int result = app.subtract(a, b);? ??????System.out.println("---" + Thread.currentThread().getName());??????? Assert.assertEquals(a - b, result);??? }??? @After??? public void tearDown() throws Exception {??? }?}

pom.xml里這么配置:

??? org.apache.maven.plugins??? maven-surefire-plugin??? 2.19??? ??????? com.qyf404.learn.maven.SlowTests???

在執行mvn test時,則只執行標記@Category(com.qyf404.learn.maven.SlowTests.class)的測試用例.

3.5.若有測試執行失敗則跳過其他測試

在打包時,默認情況會執行全部測試用例,然后給出一個執行的統計結果,如下所示:

Results :?Tests run: 3, Failures: 1, Errors: 0, Skipped: 0

很多情況下我們希望測試用例沒有失敗的才能打包,如果出現打包失敗,需要立刻停止執行其他測試用例.為滿足這個要求,我們需要增加一些配置設定.

??? 1

里面的數字1表示當有一個測試用例執行失敗或發生異常時,跳過后續的其他測試用例.這個數字其實只要是一個大于零的數就可以.表達的意思就是當有N個測試用例執行失敗或異常時,跳過后續的其他測試用例.

3.6.重新運行失敗的測試用例

當我們的一個測試用例測試的是一個遠程服務,在某些情況下可能由于環境問題(比如網絡)導致測試用例執行失敗,但這并不是程序問題.換句話說,當一個測試用例執行N次,有一次執行成功就認為成功.這個時候我們就需要配置一個參數,運行執行失敗的此時用例重新執行.

??? 2

里面的數字2表示當某個測試用例執行失敗以后,還可以重新執行2次,有一次執行成功就認為測試用例執行成功.里面的2只要是一個大于零的整數就可以,表示重試次數.如果發生重試,在maven的執行報告中會多一個Flakes.

------------------------------------------------------- T E S T S-------------------------------------------------------Running com.qyf404.learn.maven.App2TestTests run: 3, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 3.023 sec <<< FAILURE! - in com.qyf404.learn.maven.App2TesttestAdd(com.qyf404.learn.maven.App2Test)? Time elapsed: 1.012 sec? <<< FAILURE!java.lang.AssertionError: expected:<2> but was:<3>??????? at com.qyf404.learn.maven.App2Test.testAdd(App2Test.java:32)?testAdd(com.qyf404.learn.maven.App2Test)? Time elapsed: 1.006 sec? <<< FAILURE!java.lang.AssertionError: expected:<2> but was:<3>??????? at com.qyf404.learn.maven.App2Test.testAdd(App2Test.java:32)?Running com.qyf404.learn.maven.AppTestTests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec - in com.qyf404.learn.maven.AppTest?Results :?Flaked tests: com.qyf404.learn.maven.App2Test.testAdd(com.qyf404.learn.maven.App2Test)? Run 1: App2Test.testAdd:32 expected:<2> but was:<3>? Run 2: App2Test.testAdd:32 expected:<2> but was:<3>? Run 3: PASS??Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Flakes: 1

3.7.Debugging Tests

一般情況我們可以在IDE中直接執行測試用例,有時候會出現這種情況,IED中直接執行測試用例是沒問題的,但是用maven命令打包時就執行失敗了.我們可以在命令中加入-X或--debug來打印更多的日志信息來排查問題.但也可以開啟JVM的調試端口來遠程debug.

3.7.1.以調試模式執行maven命令

執行maven命令mvn -Dmaven.surefire.debug test以開啟調試模式.當然也可以用完整的命令來指定端口

mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 -Xnoagent -Djava.compiler=NONE" test

命令執行后是這個樣子:

qyfmac$ mvn -Dmaven.surefire.debug test[INFO] Scanning for projects...[INFO]???????????????????????????????????????????????????????????????????????? [INFO] ------------------------------------------------------------------------[INFO] Building learn-maven 1.0-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ learn-maven ---[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent![INFO] skip non existing resourceDirectory /Users/qyfmac/git/learn-maven/src/main/resources[INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ learn-maven ---[INFO] Nothing to compile - all classes are up to date[INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ learn-maven ---[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent![INFO] skip non existing resourceDirectory /Users/qyfmac/git/learn-maven/src/test/resources[INFO] [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ learn-maven ---[INFO] Nothing to compile - all classes are up to date[INFO] [INFO] --- maven-surefire-plugin:2.19:test (default-test) @ learn-maven ---?------------------------------------------------------- T E S T S-------------------------------------------------------Listening for transport dt_socket at address: 5005?

后面我們就需要根據這個5005端口去啟動本地源碼了.

3.7.2.使用IDE遠程調試

開始調試前需要先配置IDE,我以idea為例說明如何配置.

  • 在右上角選擇Edit Configurations....
  • 在打開的對話框中選擇左上角的加號,然后選擇Remote.
  • 配置遠程調試的參數,主要就是改個名字和端口,其他的配置一般不需要修改.設定好后點保存.
  • 在要debug得測試用例上設置一個斷點.
  • 選擇剛才設置好的配置啟動遠程調試.
  • 開始debug你的程序吧.
  • 3.8.并發執行測試用例

    如果測試用例很多,而且并行執行時不會互相影響,這時我們可以配置一個線程數來加快測試用例的執行效率.

    ???????? org.apache.maven.plugins???????? maven-surefire-plugin???????? 2.19???????? ???????????????? methods???????????????? 10????????

    3.9.查看測試報告

    在執行完mvn test后,會在target目錄下生成測試報告
    一共兩個文件,txt文件記錄了匯總信息,xml文件里記錄了測試用例執行的環境和執行情況,而且方便程序解析展現.

    txt文件內容:

    -------------------------------------------------------------------------------Test set: com.qyf404.learn.maven.AppTest-------------------------------------------------------------------------------Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec - in com.qyf404.learn.maven.AppTest

    xml文件內容:

    <?xml version="1.0" encoding="UTF-8"?>? ??? ??? ??? ??? ??? ...? ?

    結語

    寫了這么多,基本上把maven-surefire-plugin這個插件常用的都介紹了.但是maven-surefire-plugin沒介紹的遠比這些多,看看它的配置項就知道了.

    總結

    以上是生活随笔為你收集整理的maven deploy plugin_学习Maven之Maven Surefire Plugin的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美a在线视频 | 黄色一级大片在线免费看国产 | 亚洲福利在线播放 | a天堂中文 | 香蕉视频在线播放 | 欧美三级久久 | 日韩插插插 | 欧美最猛黑人xxxx | 国产刺激对白 | 在线观看亚洲视频 | 涩涩网站入口 | 国产成人自拍视频在线 | 天天干天天爽 | 精品国产免费一区二区三区 | 一本大道av伊人久久综合 | 成年网站免费观看 | 美女裸体跪姿扒开屁股无内裤 | 日本高清有码 | 日日干夜夜爱 | 一区二区三区视频免费 | 四虎影视最新网址 | 黄色片在线免费观看视频 | 国产精品有码 | 欧美一区二区三区在线看 | 国产精品无码久久久久成人app | 午夜精品久久久久久久99热浪潮 | 欧洲色网| 久久久久久久久久久91 | 国产亚洲精品一区二区三区 | 久久精品2019中文字幕 | 又黄又爽的免费视频 | 亚洲AV无码成人精品区东京热 | 少妇偷人精品无码人妻 | 337p日本欧洲亚洲大胆张筱雨 | 中文字幕一区二区三 | 成年人av| 成人深夜福利视频 | 不卡精品视频 | 青娱乐欧美 | 有码在线视频 | 亚洲五月六月 | 国产二区精品 | 国产一区影院 | 国产偷v国产偷v亚洲高清 | 国产午夜精品一区二区三区 | 亚洲一二三精品 | 快色污| 成人a级免费视频 | 成人三区| 国产91在线看| 婷婷射丁香 | 色干综合| av在线观看地址 | 亚洲性猛交xxxx乱大交 | 99riav视频| 国产亚洲性欧美日韩在线观看软件 | jizzjizz日本免费视频 | 黑人三级视频 | 欧美日日夜夜 | 99热| 亚洲成人乱码 | 中文字幕在线视频免费 | 鲁丝片一区二区三区 | 国产无码精品视频 | 超碰97av在线| sao虎视频在线精品永久 | av资源在线 | 亚洲第一页中文字幕 | 欧美在线视频精品 | 欧美亚洲高清 | 全部免费毛片在线播放高潮 | 久久久无码精品亚洲国产 | 久久无码国产视频 | 男女啪动最猛动态图 | 国产91网 | 色天天综合| 成人av在线网站 | 国产一区一一区高清不卡 | 91国产精品 | 精品国产一二区 | 人妻在线日韩免费视频 | www.成人网.com | 波多野结衣av片 | 国产 日韩 欧美 成人 | 久久伊人99 | 观看毛片| 波多野结衣潜藏淫欲 | 天堂在线视频观看 | 久久久激情视频 | 欧美成人做爰猛烈床戏 | 亚洲va欧美va | 欧美xxxxxx片免费播放软件 | 亚洲欧洲日韩国产 | 乱人伦中文字幕 | 麻豆影视在线 | 99蜜桃臀久久久欧美精品网站 | www.夜夜操.com| 日韩一区在线播放 | 一区二区不卡视频在线观看 |