如何正确使用transactionscope with nunit

nxagd54h  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(248)

我正在尝试对我的数据访问层对象进行一些集成测试。
我正在使用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);
        }
    }

如果我分别运行这些测试用例,它们都会正确执行,但是当我一起运行它们时,在第一个测试用例之后,所有测试用例的paye\u id上都会出现主键冲突。
dbconnect打开它自己与安装程序代码相同的服务器的连接,但不修改任何内容。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题