2016-03-21 1 views
0

У меня проблема с DBUnit в моих тестах. Когда я создаю свои данные в блоке db, я в настоящее время явно указываю идентификаторы. Это выглядит примерно так.Dbunit xmlfile fubctions для автогенерирующих идентификаторов

<users user_id="35" corpid="CORP\35" last_login="2014-10-27 00:00:00.0" login_count="1" is_manager="false"/> 
    <plans plan_id="18332" state="1" owned_by_user="35" revision="4"/> 
    <plan_history plan_history_id="12307" date_created="2014-08-29 14:40:08.356" state="0" plan_id="18332"/> 
    <plan_history plan_history_id="12308" date_created="2014-08-29 16:40:08.356" state="1" plan_id="18332"/> 
    <goals goal_id="12331" goal_name="Dansa" description="Dans"/> 
    <personal_goals plan_id="18332" personal_goal_id="18338" date_finished="2014-10-28 00:00:00.192" goal_id="12331" state="0"/> 
    <personal_goal_history personal_goal_id="18338" personal_goal_history_id="18005" date_created="2014-08-29 14:40:08.356" state="1" /> 
    <activities activity_id="13001"/> 
    <custom_activities activity_name="customActivity" description="Replace" activity_id="13001"/> 
    <personal_activities personal_activity_id="17338" personal_goal_id="18338" date_finished="2014-10-28 00:00:00.192" state="0" activity_id="13000"/> 
    <personal_activity_history personal_activity_id="17338" personal_activity_history_id="18338" date_created="2014-08-29 14:40:29.073" state="1" /> 

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

Im там, где вы ищете способ автогенерации идентификаторов. Например, такие функции, как getNextId("User") и getLatestId("User"), будут очень полезны. Есть ли что-то подобное в блоке БД или я сам могу создать такие функции?

Если есть другие предложения, как можно избежать этой проблемы, с радостью и здесь.

+0

Что означает «слияние проблем между испытаниями»? – Jeff

+0

Это означает, что когда мы добавляем тесты в разные ветви нашей системы vsc (git), у нас возникают проблемы при попытке слить наш файл семенных данных. Это связано с тем, что, когда мы должны предоставить идентификаторы конкретного пользователя для конкретного теста, мы должны убедиться, что никто не использовал этот идентификатор в своих тестах на своих ветвях. Поскольку это очень сложно сделать для больших команд, мы теперь несколько раз должны перенумеровать как id: s в тесте, так и те, которые содержатся в данных семени, если это произойдет. –

ответ

1

Похоже, что вы используете один и тот же файл тестовых данных для всех тестов. Лучше использовать несколько тестовых файлов - по одному на тест для своих тестовых данных и общих файлов, используемых для данных «главного списка». Данные «главного списка» не изменяются для каждого теста, тем самым не сталкиваясь с указанной проблемой при объединении файлов тестовых данных.

+0

Я согласен, что расщепление тестовых данных должно работать. –