mysqltest
          言語を使用して独自にテストケースを作成できます。残念ながら、その完全なマニュアルはまだ作成されていません。ただ、現在のテストケースを参考にすることができます。独自にテストケースを作成する際の注意点を以下に示します。
        
              作成したテストは
              mysql-test/t/*.test に置く。
            
              テストケースは、;
              で終端されたステートメントで構成され、mysql
              コマンドラインクライアントへの入力と同様である。ステートメントは、それが内部コマンド(sleep
              など)として認識される場合を除いて、デフォルトでクエリとして
              MySQL サーバに送信される。
            
              SELECT、SHOW、EXPLAIN
              など、結果セットを生成するすべてのクエリは、先に
              @/path/to/result/file
              を指定する必要がある。ファイルには予想される結果を記述する必要がある。結果ファイルを簡単に生成する方法としては、mysql-test
              ディレクトリから mysqltest -r <
              t/test-case-name.test
              を実行し、必要に応じて生成された結果ファイルを編集して予想される出力に変更する。この場合、表示されない文字を追加または削除しないように注意する必要がある。必ずテキストの変更または行の削除、あるいはその両方だけを実行するようにする。行を挿入する必要がある場合、必ずフィールドをハードタブで区切り、行の最後にハードタブを置くようにする。od
              -c
              を使用すると、編集中にテキストエディタで何も壊していないことを確認できる。mysqltest
              -r
              の出力を編集する必要があるのはバグが見つかった場合だけなので、そのような必要性が生じないことを祈っている。
            
              テストスイートとの整合性を取るには、結果ファイルを
              mysql-test/r
              ディレクトリに置いて、名前を
              test_name.result
              にする必要がある。テストで複数の結果ファイルを生成する場合は、test_name.a.result、test_name.b.result
              のように名前を付ける必要がある。
            
              ステートメントがエラーを返す場合、そのステートメントの前に
              --error error-number
              を指定する。ここで、エラー番号には、','
              で区切られたエラー番号のリストを指定できる。
            
              レプリケーションのテストケースを作成している場合、テストファイルの先頭行に
              source include/master-slave.inc;
              と記述する必要がある。マスタとスレーブを切り替えるには、connection
              master; および connection
              slave;
              を使用する。もう一方の接続で何らかの処理を実行する必要がある場合、マスタには
              connection master1;
              を実行し、スレーブには connection
              slave1; を実行する。
            
ループの中で何らかの処理を実行する必要がある場合、以下のようなコードを作成する。
let $1=1000;
while ($1)
{
 # do your queries here
 dec $1;
}
              クエリ間でスリープするには、sleep
              コマンドを使用する。秒数は小数点以下まで指定できるので、たとえば
              1.3 秒スリープする場合は sleep
              1.3; を実行する。
            
              テストケースのためにオプションを追加してスレーブを実行するには、mysql-test/t/test_name-slave.opt
              にコマンドライン形式で記述する。マスタの場合は、mysql-test/t/test_name-master.opt
              に記述する。
            
テストスイートに質問がある場合、またはテストスイートに提供するテストケースがある場合、MySQL 内部情報のメーリングリストにメールを送信する。See 項1.7.1.1. 「MySQL メーリングリスト」。 このメーリングリストは添付ファイルを受け付けないので、関連するファイルは ftp://support.mysql.com/pub/mysql/Incoming/ にアップロードする必要がある。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

