91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ES學習筆記之-集成測試的簡單學習

發布時間:2020-07-14 06:58:13 來源:網絡 閱讀:773 作者:sbp810050504 欄目:大數據

集成測試在es源碼中的用法比較簡單。我選擇的切入口是delete-by-query插件。

將es插件的源碼導入intellij后,直接運行類DeleteByQueryRestIT, 就會運行所有的集成測試用例。

-ea -Dtests.security.manager=false

這個運行結果,會讓我產生兩個疑問:

  1. 這個類里面沒有test注解的方法,其入口在哪里?
  2. resource/rest-api-spec目錄下,只有一個yaml文件,這些測試用例來自哪里?

通過查看其父類ESRestTestCase,可以看到里面有test注解的test方法,而且設置斷點,可以確定該方法是測試的入口。

那么500多個測試用例來自哪里呢?

ESRestTestCase@BeforeClass注解的方法

    @BeforeClass
    public static void initExecutionContext() throws IOException, RestException {
        String[] specPaths = resolvePathsProperty(REST_TESTS_SPEC, DEFAULT_SPEC_PATH);
        RestSpec restSpec = null;
        FileSystem fileSystem = getFileSystem();
        // don't make a try-with, getFileSystem returns null
        // ... and you can't close() the default filesystem
        try {
            restSpec = RestSpec.parseFrom(fileSystem, DEFAULT_SPEC_PATH, specPaths);
        } finally {
            IOUtils.close(fileSystem);
        }
        validateSpec(restSpec);
        restTestExecutionContext = new RestTestExecutionContext(restSpec);
    }

通過了解這個方法的源碼,可以了解到在elasticsearch-2.4.5-tests.jar里面,集成了這些測試用例。
這些測試用例的源碼就在elasticsearch/rest-api-spec目錄下。

那么如何只運行插件中的測試用例而忽略jar包中的測試用例呢?

-Dtests.rest.load_packaged=false

直接運行,會發現測試用例運行失敗。原來delete-by-query的測試用例有依賴。先編譯源碼:
編譯前修改項目源碼的elasticsearch/pom.xml文件, 不能略過集成測試。

<skip.integ.tests>false</skip.integ.tests>

然后編譯delete-by-query插件

elasticsearch/plugins/delete-by-query$ mvn install

編譯完成后再運行DeleteByQueryRestIT類,即可成功運行插件的測試用例。

-ea -Dtests.security.manager=false -Dtests.rest.load_packaged=false

這里的測試用例會啟用一個獨立的es集群,用來運行測試用例,運行完成后再shutdown. 其功能由如下的腳本提供:

elasticsearch/dev-tools/src/main/resources/integration-tests.xml

參考:
http://david.pilato.fr/blog/2016/10/18/elasticsearch-real-integration-tests-updated-for-ga/

了解了集成測試插件的運行過程后,就可以在開發插件時自行實現集成測試的功能。而且通過yaml+json的方式,能夠做到測試用例的復用。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黄石市| 荥阳市| 万年县| 都昌县| 定陶县| 二连浩特市| 定边县| 莲花县| 伽师县| 呼伦贝尔市| 岐山县| 香港| 比如县| 永清县| 平湖市| 内江市| 甘谷县| 庄浪县| 沙湾县| 尉犁县| 新源县| 巫溪县| 古蔺县| 泗阳县| 故城县| 西宁市| 井研县| 屯留县| 连平县| 吉安县| 屏东市| 英山县| 嘉义市| 华安县| 噶尔县| 长宁区| 凤凰县| 佛坪县| 克什克腾旗| 阆中市| 昆明市|