Я пытаюсь провести интеграционное тестирование на моем объекте уровня доступа к данным.
Я использую C #, Nunit3 и MySQL 5.7.
Вот мой код.
[TestCase("payee", 0)]
[TestCase("payee", 53)]
[TestCase("payee_to_corp_to_permissions", 0)]
[TestCase("payee_to_corp_to_permissions", 53)]
[Test]
public void AllRecordsToMigrateTest(string tableName, decimal corpId)
{
using (TransactionScope transactionScope = new TransactionScope())
{
List<Payee> payees = new List<Payee>
{
new Payee { payee_id = 1, corp_id = 1 },
new Payee { payee_id = 2, corp_id = 53 },
new Payee { payee_id = 3, corp_id = 22, payee_type_id = 3 },
new Payee { payee_id = 4, corp_id = 1 },
};
using (MySqlConnection mySqlConnection = new MySqlConnection(DstConnectionString))
{
mySqlConnection.Open();
foreach (var payee in payees)
{
payee.Insert(mySqlConnection);
}
PayeeToCorpToPermission payeeToCorpToPermission = new PayeeToCorpToPermission { payee_id = 4, corp_id = 53 };
payeeToCorpToPermission.Insert(mySqlConnection);
}
DataTable result = dbConnect.AllRecordsToMigrate(adilasMySQLTable, 53);
Assert.AreEqual(3, result.Rows.Count);
}
}
Если я запускаю случаи отдельно, все они выполняются правильно, но когда я запускаю их вместе, я получаю конфликт первичного ключа для payee_id для всех тестовых случаев после первого.
dbConnect открывает свое собственное соединение стот же сервер, что и код установки, но ничего не изменяет, только запросы.