Я пытаюсь использовать NDbUnit. Я создал отдельный XSD для каждой таблицы вместо одного большого XSD для полной базы данных.
Мои тесты работают нормально, когда я использую только один XSD и однократное чтение xml. Однако для конкретного теста мне нужно иметь данные в двух или трех разных (но связанных) таблицах. Если я попытаюсь прочитать более одного xsd и xml, он выдаст исключение.
Вот мой код
[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext)
{
IDbConnection connection = DbConnection.GetCurrentDbConnection();
_mySqlDatabase = new NDbUnit.Core.SqlClient.SqlDbUnitTest(connection);
_mySqlDatabase.ReadXmlSchema(@"Data\CompanyMaster.xsd");
_mySqlDatabase.ReadXml(@"Data\CompanyMaster.xml");
_mySqlDatabase.ReadXmlSchema(@"Data\License.xsd");
_mySqlDatabase.ReadXml(@"Data\License.xml");
_mySqlDatabase.ReadXmlSchema(@"Data\LicenseDetails.xsd");
_mySqlDatabase.ReadXml(@"Data\LicenseDetails.xml");
_mySqlDatabase.ReadXmlSchema(@"RelatedLicense.xsd");
_mySqlDatabase.ReadXml(@"Data\RelatedLicense.xml");
}
Вот исключение, которое я получаю в момент, когда я пытаюсь прочитать License.XSD, как показано выше.
Метод инициализации класса ESMS.UnitTest.CompanyManagerTest.MyClassInitialize вызвал исключение. System.ArgumentException: System.ArgumentException: элемент уже добавлен. Ключ в словаре: «EnableTableAdapterManager». Добавляемый ключ: «EnableTableAdapterManager».
Я не уверен, что это правильный способ чтения нескольких XML, XSD с помощью NDbUnit. Я погуглил и Overflowed (т. е. искал переполнение стека), но не смог найти разумного направления. Может ли кто-нибудь объяснить, что происходит не так и как исправить?