我正在Visual Studio 2013中创建我的第一个SQL Server单元测试。我有一个在SQL Server Management Studio窗口中成功运行的脚本。我有一个重置数据库状态的脚本,该脚本也成功运行。 (我将其设置为我的PreTest脚本。)我的单元测试大约需要2分钟才能运行。 (它在幕后生成了大量数据。)但SQL Server单元测试似乎配置为在30秒后超时。我一直试图找出如何更改超时设置,但我似乎无法找到它。 (请注意,我不是指连接超时,而是查询执行超时。)我想以超时设置3分钟运行此测试。
提前谢谢。
答案 0 :(得分:6)
数字,我在发布问题之前花了一个小时搜索,然后我在10分钟后找到答案。这是我的测试代码,其中包含commandtimeout行:
[TestMethod()]
public void CreateScenario_FromProject_Q123314_FromVersion_AA()
{
SqlDatabaseTestActions testActions = this.SqlTest1Data;
// Execute the pre-test script
//
System.Diagnostics.Trace.WriteLineIf((testActions.PretestAction != null), "Executing pre-test script...");
SqlExecutionResult[] pretestResults = TestService.Execute(this.PrivilegedContext, this.PrivilegedContext, testActions.PretestAction);
// Execute the test script
//
System.Diagnostics.Trace.WriteLineIf((testActions.TestAction != null), "Executing test script...");
this.ExecutionContext.CommandTimeout = 180; // HERE IS THE COMMANDTIMEOUT
SqlExecutionResult[] testResults = TestService.Execute(this.ExecutionContext, this.PrivilegedContext, testActions.TestAction);
// Execute the post-test script
//
System.Diagnostics.Trace.WriteLineIf((testActions.PosttestAction != null), "Executing post-test script...");
SqlExecutionResult[] posttestResults = TestService.Execute(this.PrivilegedContext, this.PrivilegedContext, testActions.PosttestAction);
}
答案 1 :(得分:0)
这对我非常有帮助。我发现并希望分享一种替代方法,使它更具全局性,而不是仅适用于单个测试用例。
您可以通过更新 0 1 2 3
b 1 0 0 0
d 1 1 1 0
e 1 1 1 1
a 0 0 0 0
b 1 0 0 0
中连接字符串的CommandTimeout来全局应用超时设置(如下所示)。这适用于SSDT 2016和Visual Studio 2017。
app.config