Это потому, что CLEAN_INSERT делает "CLEAN" перед тестом, а не после теста.
Например, если есть два теста, test1 и test2. test1 и test2 заполняют таблицы из test1.xml и test2.xml соответственно.
test1.xml похож на
<dataset>
<table1 ... />
<table2 ... />
</dataset>
test2.xml похож на
<dataset>
<table1 ... />
</dataset>
Когда порядок тестов - test1, а затем test2, CLEAN_INSERT выполнит следующие операции:
- удалить все из таблицы2
- удалить все из таблицы1
- вставить данные из test1.xml в table1
- вставить данные из test1.xml в table2
- выполнить тест1
- удалить все из таблицы1
- вставить данные из test2.xml в table1
- выполнить тест2
Таким образом, при выполнении test2 таблица table1 получает данные из test2.xml, чего мы и ожидаем. Но таблица2 по-прежнему содержит данные для test1, что может вызвать некоторые проблемы.
Обходной путь должен иметь пустую строку для каждой таблицы во всех XML-файлах. Перед вставкой все таблицы будут очищены.
Для приведенного выше примера,
test1.xml будет похож на
<dataset>
<table1 ... />
<table2 ... />
<table1 />
<table2 />
</dataset>
test2.xml похож на
<dataset>
<table1 ... />
<table1 />
<table2 />
</dataset>