<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 30.1\. 運行測試 回歸測試可以對一套已經安裝好并且在運行中的服務器進行測試, 也可以對編譯樹里面即將安裝的服務器進行測試。詳細些說,有"并行" 和"串行"運行測試之分。串行模式順序運行每個測試,而并行模式啟動多個服務器進程, 并發地運行一組測試。并發測試使我們對進程內部通訊和鎖的正確工作有足夠的信心。 ## 30.1.1\. 對臨時安裝運行測試 編譯之后和安裝之前運行回歸測試,你可以在頂級目錄運行(或者進入 `src/test/regress`子目錄然后在那里運行): ``` gmake check ``` 這樣將先編譯幾個輔助文件,比如一些用戶定義的觸發器函數,然后再運行測試驅動腳本。 最后你會看到類似下面的東西: ``` <samp class="literal">======================= All 115 tests passed. =======================</samp> ``` 或者是一些關于某項測試失敗的信息。先看看[Section 30.2](#calibre_link-1300) 然后再想想一個"失敗"是否代表嚴重的錯誤。 因為這個測試方法運行臨時的服務器,所以如果你是 root 用戶, 那這個方法不能運行(服務器不能以 root 身份啟動)。如果你已經以 root 身份編譯了, 你就什么也干不了。這時候你應該把測試目錄的權限變成某個用戶可寫, 然后以那個用戶身份登陸,再開始測試。比如: ``` <samp class="literal">root#</samp> <kbd class="literal">chmod -R a+w src/test/regress</kbd> <samp class="literal">root#</samp> <kbd class="literal">su - joeuser</kbd> <samp class="literal">joeuser$</samp> <kbd class="literal">cd `_top-level build directory_`</kbd> <samp class="literal">joeuser$</samp> <kbd class="literal">gmake check</kbd> ``` 這里唯一可能的"安全隱患"就是那個用戶可能會背著你修改回歸測試的結果。 用你的常識管理用戶權限。 如果不是上面那樣,安裝后就可以運行測試。 如果你配置PostgreSQL安裝到一個原來安裝有老版本 PostgreSQL的目錄里,然后在安裝新版本之前執行`gmake check`, 那么你可能發現測試失敗,因為新程序試圖使用已經存在的共享庫,典型的癥狀是抱怨未定義的符號。 如果你想在覆蓋老版本之前運行測試,那么你需要使用`configure --disable-rpath`進行編譯。 不過,我們不建議你使用這個選項編譯作為最終安裝的數據庫。 并發的回歸測試會在你的用戶 ID 下啟動相當多的進程。目前,最大的并發數是 20 個并發測試腳本, 這意味著 40 個進程:一個服務器進程、每個腳本一個psql進程。因此, 如果你的系統有針對每個用戶的進程數限制,那么請確保這個限制至少是 50 , 否則你就可能在并發測試時看到隨機出現的失敗。如果你沒有辦法提升該限制, 那么可以通過設置`MAX_CONNECTIONS`參數降低并發測試程度。比如: ``` gmake MAX_CONNECTIONS=10 check ``` 將運行最多不超過 10 個并發進程。 ## 30.1.2\. 對現有安裝運行測試 安裝后(參見 (see [Chapter 15](#calibre_link-1156)))運行測試, 像as explained in [Chapter 17](#calibre_link-635), 描述的那樣初始化一個數據區并啟動服務器,然后鍵入: ``` gmake installcheck ``` 或者是運行一個并發測試: ``` gmake installcheck-parallel ``` 該測試將與在本地主機和缺省端口號上運行的服務器進行連接,除非你用`PGHOST` 和`PGPORT`環境變量設置為其它值。 源代碼發布還包含給可選的過程語言和`contrib`模塊使用的回歸測試。目前, 這些測試只能用于已經安裝的服務器。要給所有編譯并安裝的過程語言運行測試, 我們可以進入源代碼樹的`src/pl`目錄然后運行: ``` gmake installcheck ``` 你還可以在`src/pl`的任何子目錄里只針對一種過程語言進行測試。 要為所有`contrib`模塊運行測試,必須首先編譯并安裝`contrib`模塊, 然后進入`contrib`目錄運行: ``` gmake installcheck ``` 你也可以在`contrib`的子目錄里只針對一個模塊運行測試。 ## 30.1.3\. 測試熱備份 源代碼發布還包含熱備份靜態行為的回歸測試。測試要求一個運行的主服務器和一個運行的備用服務器, 接受使用基于文件日志傳送或流復制的從主服務器改變的新WAL。這些服務器不是自動為你創建的, 設置文件也不是。請查閱所需命令和相關問題的文檔的細節。 首先,在主服務器上創建一個命名為"regression"的數據庫。 ``` psql -h primary -c "CREATE DATABASE regression" ``` 然后,在主服務器上的回歸數據庫運行一個準備腳本: `src/test/regress/sql/hs_primary_setup.sql`, 允許更改傳送到備用,例如: ``` psql -h primary -f src/test/regress/sql/hs_primary_setup.sql regression ``` 現在確認測試的默認連接是接受測試的備用服務器,然后從回歸目錄運行`standbycheck`: ``` cd src/test/regress gmake standbycheck ``` 一些極端行為也可能在主服務器產生,使用腳本: `src/test/regress/sql/hs_primary_extremes.sql` 允許測試備用服務器的行為。 額外的自動化測試可能在以后的版本中可用。 ## 30.1.4\. 區域和編碼 默認的,對臨時安裝的測試使用在當前環境中定義的區域并且由`initdb` 決定相應的數據庫編碼。通過設置適當的環境變量來測試不同的區域是有用的,例如: ``` gmake check LANG=C gmake check LC_COLLATE=en_US.utf8 LC_CTYPE=fr_CA.utf8 ``` 由于實現原因,設置`LC_ALL`并不能為此工作;所有其他區域相關的環境變量可以。 當對現有安裝測試時,區域是由現有數據庫集群決定的,并且不能單獨為測試運行設置。 你也可以通過設置變量`ENCODING`明確的選擇數據庫編碼,例如: ``` gmake check LANG=C ENCODING=EUC_JP ``` 用這種方式設置數據庫編碼通常只在區域是C的情況下有用;否則編碼自動從區域中選擇, 并且指定不匹配區域的編碼將會導致錯誤。 編碼可以為臨時或現有安裝測試設置。 ## 30.1.5\. 額外的測試 回歸測試包含的一些測試文件默認是不運行的,因為它們可能是依賴于平臺的或運行需要很長的時間。 你可以通過設置變量`EXTRA_TESTS`運行它們或其他額外測試文件。 例如,運行`numeric_big`測試: ``` gmake check EXTRA_TESTS=numeric_big ``` 運行排序測試: ``` gmake check EXTRA_TESTS=collate.linux.utf8 LANG=en_US.utf8 ``` `collate.linux.utf8`測試只在Linux/glibc平臺工作, 并且只在數據庫使用UTF-8編碼時運行。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看