Puede usar el lenguaje mysqltest para crear sus propios casos de test. Desafortunadamente, todavía no hay una documentación completa para el mismo. Sin embargo, puede ojear nuestros casos de uso y usarlos como ejemplo. Los siguientes puntos pueden ayudarle a empezar:
Los tests se encuentran en
mysql-test/t/*.test
Un caso de test consiste en comandos terminados por
;
y es similar a la entrada del cliente
de línea de comandos mysql . Un
comando por defecto es una consulta que se envía a MySQL
server, a no ser que se reconozca como comando interno
(p.e. sleep).
Todas las consultas que producen resultados--por ejemplo,
SELECT
, SHOW
,
EXPLAIN
, etc., debe precederse con
@/path/to/result/file
. El
fichero debe contener los resultados esperados. Una forma
fácil de generar el fichero de resultados es ejecutar
mysqltest -r <t/test-case-name.test
del directorio mysql-test
, y editar
los ficheros resultantes, si es necesario, para ajustarlos
a la salida esperada. En ese caso, sea muy cuidadoso de no
añadir o borrar caracteres invisibles -- asegúrese de
cambiar sólo el texto y/o borrar líneas. Si tiene que
insertar una línea, aségurese que los campos estén
separados por un tabulador, y que hay un tabulador al
final. Si quiere puede usar od -c para
asegurarse que su editor de texto no ha desbaratado nada
durante la edición. Esperamos que nunca tenga que editar
la salida de mysqltest -r ya que sólo
tiene que hacerlo al encontrar un bug.
Para ser consistente con nuestra inicialización, debe
poner sus ficheros resultantes en el directorio
mysql-test/r
y llamarlos
test_name.result
. Si el test produce
más de un resultado, debe usar
test_name.a.result
,
test_name.b.result
, etc.
Si un comando retorna un error, debe especificarlo con
--error error-number
en la línea
anterior al comando. El número de error puede ser una
lista de números de error posibles separados por
',
'.
Si está escribiendo un caso de test de replicación, debe
poner en la primera línea del fichero de test,
source include/master-slave.inc;
. Para
cambiar entre maestro y esclavo, use connection
master;
y connection slave;
.
Si necesita hacer algo en una conexión alternativa, puede
hacer connection master1;
para el
maestro, y connection slave1;
para el
esclavo.
Si necesita hacer algo en un bucle, puede usar algo como esto:
let $1=1000; while ($1) { # do your queries here dec $1; }
Para dormir entre consultas, use el comando sleep. Soporta fracciones de segundo, así que puede usar sleep 1.3;, por ejemplo, para dormir 1.3 segundos.
Para ejecutar el esclavo con opciones adicionales para sus
casos de test, póngalos en el formato de línea de
comandos en
mysql-test/t/test_name-slave.opt
.
Para el maestro, póngalas en
mysql-test/t/test_name-master.opt
.
Si tiene una pregunta sobre la suite de test, o tiene un
caso de test al que contribuir, envíe un email a la lista
de correo MySQL internals
. Consulte
Sección 1.6.1.1, “Las listas de correo de MySQL”. Como esta lista no acepta
adjuntos, debe subir por ftp todos los ficheros relevantes
a: ftp://ftp.mysql.com/pub/mysql/upload/
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.