SQL Server 单元测试包括:
用 C# 或 Visual Basic 编写的单元测试代码。 此代码由 SQL Server 单元测试设计器生成,负责提交构成测试正文的 Transact-SQL 脚本。
用 C# 或 Visual Basic 编写的一个或多个测试条件。 若要调试测试条件,请按照
《如何:测试运行时进行调试(Visual Studio 2010)》或 《如何:测试运行时进行调试(Visual Studio 2012)》 中所述的调试单元测试的过程进行操作。在要测试的数据库中的对象上运行的一个或多个 Transact-SQL 脚本。 无法调试这些 Transact-SQL 脚本。
本文中的过程介绍如何调试特定数据库对象,例如要测试的数据库中的存储过程、函数和触发器。 若要调试数据库对象,请按以下顺序执行以下过程:
- 在测试项目上启用 SQL Server 调试。
- 在托管要测试的数据库的 SQL Server 实例上启用应用程序调试。
- 在要调试的数据库对象的 Transact-SQL 脚本中设置断点。
- 调试单元测试。 在此过程中,在调试模式下运行测试。
在测试项目上启用 SQL 调试
打开 解决方案资源管理器。
在 解决方案资源管理器中,右键单击测试项目,然后选择 “属性”。
一个与测试项目同名的属性页打开了。
在属性页上,选择“ 调试”。
在 “启用调试器”下,选择“ 启用 SQL Server 调试”。
保存更改。
设置增加的执行上下文超时,以便为测试项目启用调试
在 “文件 ”菜单上,指向 “打开”,然后选择“ 文件”。
浏览到包含测试项目的文件夹,然后双击
app.config该文件。该文件
app.config将在编辑器中打开。修改
ExecutionContext节点以添加一个命令超时,如以下示例所示:<ExecutionContext CommandTimeout ="300" Provider="System.Data.SqlClient" ConnectionString="Data Source=TargetServerName\TargetInstanceName;Initial Catalog=TargetDatabaseName;Integrated Security=True;Pooling=False" />保存更改。
重新生成单元测试项目。
重要
如果不重新生成项目,则运行单元测试时不会应用对 app.config 所做更改,调试失败。
将断点添加到 Transact-SQL 脚本
在 “视图 ”菜单上,打开 SQL Server 对象资源管理器。
在 “数据连接”下,展开要测试的数据库节点。
如果数据库图标旁边显示一个小红色的“x”,则与数据库的连接将关闭。 在这种情况下,右键单击数据库,然后选择“ 刷新”。 可能需要提供凭据才能打开与数据库的连接。
展开 “视图”、“ 存储过程”或 “函数 ”节点以查找要调试的对象。
双击要调试的对象。
选择灰色边栏以设置断点。
调试 SQL Server 单元测试
Visual Studio 2010,打开“测试>Windows” 测试视图 窗口。 在 Visual Studio 2012 中,打开 “测试资源管理器” 窗口。
右键单击包含用于操作数据库对象的 Transact-SQL 脚本的测试项目,在其中设置断点,然后选择 “调试选择”。
测试在调试模式下运行,直到遇到数据库对象中的断点。
(可选)若要打开另一个调试窗口,请打开 “调试 ”菜单,指向 Windows,然后选择“ 断点”、“ 输出”或“ 即时”。