0

在 SSDT (VS2019) 的 SQL Server 数据库项目中,我有一个单元测试项目。它里面是一个app.config文件,它指定了单元测试数据库的设置。

一种设置是:

<DataGeneration ClearDatabase="true" />

这究竟应该做什么?我的假设是它会在运行测试之前清除数据库中的所有数据(即只有一个没有数据的干净模式)。但是,我的测试表明这是不正确的。

我有一个测试,它在该部分中插入 5 条记录,然后Pre-test检查Row Count. ResultSet如果我删除我的测试数据库并运行它,它就会通过。如果我再次运行它,它会失败并出现错误:RowCountCondition Condition (rowCountCondition1) Failed: ResultSet 1 : The 10 row(s) did not match the 5 expected row(s).。显然,我第一次运行的 5 行插入在第二次运行时没有被清除。我希望ClearDatabase能做到这一点;删除数据并重新开始。

我意识到我可以TRUNCATE或钩子DELETE FROM中的表Pre-Test来规避这个错误,但我想了解这个 XML 属性,因为它似乎违反直觉。

我在网上查找了文档,我能找到的只是官方的 Microsoft 文档,它描述了我所期望的属性,但不是它的实际行为!

4

0 回答 0