Я бы порекомендовал два вида тестов: первый - юнит-тест на меньшем контролируемом наборе данных, который должен быть моделью для данных, которые вы найдете в большом словаре. Это можно считать модульным тестом для вашего процесса xslt. Обычно я извлекаю несколько репрезентативных фрагментов из большого набора данных и сохраняю их вместе с тестовым кодом. Затем тест применяет преобразование к тестовым данным и делает утверждения о результате, подтверждая, что преобразование было успешно использовано.
Затем дополнительно вы должны встроить проверки работоспособности в свою производственную систему, чтобы (например) убедиться, что общее количество обработанных узлов соответствует ожидаемому. Например, в словаре с большим количеством записей вы можете выполнить один шаг для подсчета всех записей, а затем еще один для их обработки. Затем, в конце, посмотрите, сколько записей вы обработали, и убедитесь, что количество совпадает с ожидаемым. Это также полезно, поскольку позволяет выводить индикатор выполнения (% выполнения).
Во всяком случае, это то, что мы делаем.
Если текст в выходных данных совпадает с текстом во входных данных, как в вашем примере, Marcin, вы можете легко сравнить их с помощью xslt. Если вы обработаете XML-файл с пустой таблицей стилей xslt (только узел <xslt:stylesheet />
), вы получите только текст без разметки. Я думаю, что xmllint может сделать это тоже. Так что просто запустите это как на входе, так и на выходе, и сравните, используя простое сравнение текста (например, diff).