擴展 MySQL 9.0  /  MySQL 測試套件

第 3 章 MySQL 測試套件

Unix 原始碼和二進位發行版中包含的測試系統,讓使用者和開發人員能夠對 MySQL 程式碼執行回歸測試。這些測試可以在 Unix 上執行。

您也可以編寫自己的測試案例。如需相關資訊 (包括系統需求),請參閱 MySQL Server 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 的複本,且您想要在該機器上執行測試套件,只要它未使用連接埠 93069307,您就不必停止它。如果已佔用其中一個連接埠,您應該將 MTR_BUILD_THREAD 環境變數設定為適當的值,測試套件將會針對來源、複本和 NDB 使用不同的連接埠集。例如

$> export MTR_BUILD_THREAD=31
$> ./mysql-test-run.pl [options] [test_name]

mysql-test 目錄中,您可以使用 ./mysql-test-run.pl 測試名稱 來執行單個測試案例。

如果您對測試套件有疑問,或有測試案例要貢獻,請加入 MySQL 社群 Slack