Я пытаюсь использовать NDbUnit. Я создал отдельный XSD для каждой таблицы вместо одного большого XSD для полной базы данных.
Мои тесты работают нормально, когда я использую только один XSD и один xml read. Однако для перикулярного теста мне нужны данные в двух или трех разных (но связанных) таблицах. Если я попытаюсь прочитать более одного 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. Я гуглил и переполнен (то есть искал переполнение стека), но не смог получить никакого разумного направления. Может кто-нибудь объяснить, что идет не так и как исправить?