У меня есть ряд тестов, которые работают с базой данных MySQL, которая предварительно загружена схемами и примерами данных из набора файлов SQL. Некоторые из этих тестов во время выполнения также создают новые данные в базе данных.
Обычно тесты отвечают за очистку после себя (и, следовательно, не загрязняют среду базы данных для других тестов). Однако, похоже, что некоторые из этих тестов не полностью делают это, и, следовательно, оставляют после себя дополнительные / измененные записи, где они не должны.
Из-за сложного набора кода, который тестируется, невозможно выполнить одну транзакцию для всего теста, поэтому я не могу просто заставить MySQL откатить все назад (есть как несколько курсоров, так и несколько задействованы реплицированные серверы БД, среди прочих факторов).
Хотелось бы, чтобы у меня был способ более легко идентифицировать эти тесты, которые загрязняют БД, но поскольку допускает , то тесты могут записываться в БД (при условии, что они потом удаляются) Я не могу просто посмотреть на все изменения в БД - мне нужны только эффективные изменения, с отменой отмененных изменений.
Одна мысль, которая у меня возникла, заключалась в том, что если бы существовал простой способ сравнить содержимое одной таблицы с другой, я мог бы сделать это после выполнения каждого теста, сравнивая содержимое таблицы, инициализированной с помощью прибора, с содержимым таблицы. после теста.