包含在 Unix 原始碼和二進位發行版中的測試系統,讓使用者和開發人員能夠對 MySQL 程式碼執行回歸測試。這些測試可以在 Unix 上執行。
您也可以編寫自己的測試案例。如需包含系統需求在內的資訊,請參閱 MySQL 伺服器 Doxygen 文件中的 MySQL 測試架構,網址為 https://mysqldev.dev.org.tw/doc/index-other.html。
目前的測試案例組並未測試 MySQL 中的所有內容,但它應該能找出 SQL 處理程式碼、作業系統或程式庫問題中的大多數明顯錯誤,並且在測試複寫方面相當徹底。我們的目標是讓測試涵蓋 100% 的程式碼。我們歡迎對我們的測試套件做出貢獻。您可能尤其想貢獻檢查對您的系統至關重要的功能的測試,因為這可確保所有未來的 MySQL 發行版本都能良好地與您的應用程式搭配使用。
測試系統由測試語言解譯器 (mysqltest)、執行所有測試的 Perl 腳本 (mysql-test-run.pl)、以特殊測試語言編寫的實際測試案例及其預期結果組成。若要在組建後於您的系統上執行測試套件,請從原始碼根目錄輸入 make test,或者將位置變更為 mysql-test
目錄並輸入 ./mysql-test-run.pl。如果您已安裝二進位發行版,請將位置變更為安裝根目錄下的 mysql-test
目錄 (例如,/usr/local/mysql/mysql-test
),並執行 ./mysql-test-run.pl。所有測試都應該成功。如果有任何測試失敗,請隨時嘗試找出原因,如果表示 MySQL 中有錯誤,請回報問題。請參閱如何回報錯誤或問題。
如果一個測試失敗,您應該使用 --force
選項執行 mysql-test-run.pl,以檢查是否有其他測試失敗。
如果您在要執行測試套件的機器上執行 mysqld 副本,您不必停止它,只要它沒有使用連接埠 9306
或 9307
即可。如果使用了這些連接埠中的任何一個,您應該將 MTR_BUILD_THREAD
環境變數設定為適當的值,測試套件將使用不同的連接埠組來進行來源、複本和 NDB)。例如
$> export MTR_BUILD_THREAD=31
$> ./mysql-test-run.pl [options] [test_name]
在 mysql-test
目錄中,您可以使用 ./mysql-test-run.pl 測試名稱
執行個別測試案例。
如果您對測試套件有疑問,或有測試案例要貢獻,請加入 MySQL 社群 Slack。