Чайник Pentaho: как настроить тесты на трансформации / задания? - PullRequest
12 голосов
/ 03 апреля 2012

Я уже давно использую Pentaho Kettle, и ранее выполненные мной преобразования и задания (с использованием ложки) представляли собой довольно простую загрузку из базы данных, переименование и т. Д., Ввод данных в другую базу данных.Но теперь я выполняю преобразования, которые выполняют немного более сложные вычисления, которые я бы хотел как-то протестировать.

Итак, я хотел бы сделать следующее:

  1. Настроить некоторыетестовые данные
  2. Запустить преобразование
  3. Проверить данные результата

Возможно, одним из вариантов будет создание тестового задания Kettle, которое будет проверять преобразование.Но поскольку мои преобразования связаны с Java-проектом, я бы предпочел запустить тесты из jUnit.Поэтому я подумал о создании теста jUnit, который бы:

  1. Настроил тестовые данные (используя dbunit)
  2. Запустил преобразование (используя kitchen.sh из командной строки)
  3. Проверка данных результатов (с использованием dbunit)

Однако для этого подхода потребуются тестовые базы данных, которые не всегда доступны (оракул и т. Д. Дорогие / устаревшие БД). Я бы предпочел, чтобы, если ямог бы посмеяться или передать некоторые тестовые данные заглушки на мои шаги ввода каким-либо образом.

Какие-нибудь другие идеи о том, как проверить преобразования чайника Pentaho?

Ответы [ 3 ]

4 голосов
/ 03 апреля 2012

где-то на jira.pentaho.com есть jira (у меня его нет), который запрашивает именно это - но, увы, он еще не реализован.

Так что у вас есть правильное решение - я бы также добавил jenkins и скрипт для муравья, чтобы связать все это вместе. Я проделал аналогичную работу с тестированием отчетов - на самом деле у меня было задание на загрузку данных в Пентаго, затем он выполнил отчет, затем сравнил вывод с известным выводом и сообщил о прохождении / сбое.

3 голосов
/ 05 апреля 2013

Если вы разделите работу в чайнике на две фазы:

  • загрузка данных в поток
  • обработка и обновление данных

Вы можете использовать строки копирования, чтобы получить результат в конце ваших данных загрузки для шага потока, и получить строки из результата, чтобы получить строки в начале шага процесса.

Если вы сделаете это, то можете использовать любые средства для загрузки данных (преобразование в чайник, dbunit, вызываемый из скрипта ant), и можете макетировать любые таблицы базы данных, которые вам нужны.

Я использую это для тестирования некоторых сценариев ETL, которые я написал, и это прекрасно работает.

1 голос
/ 14 июля 2015

Вы можете использовать шаг проверки данных .Конечно, это не полный набор модульных тестов, но я думаю, что иногда будет полезно быстро проверить целостность данных.Вы можете запустить более нескольких тестов одновременно.

Для более "серьезного" теста я порекомендую @ codek answer и выполню ваши чайники под Jenkins.

data validator step screenshot

...