1
我正在使用VS 2015单元测试来测试SQL Server 2012数据库。我希望能够使用预测试来插入测试数据,并将整个单元测试包装在可以在测试结束时回滚的事务中。我试过在TransactionScope(下面)中包装整个测试代码,但它不回滚插入。在事务中包装Visual Studio数据库单元测试以消除数据库更改持久
using (TransactionScope scope = new TransactionScope())
{
SqlDatabaseTestActions testActions = this.dbo_Proc1TestData;
// 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);
try
{
// Execute the test script
//
System.Diagnostics.Trace.WriteLineIf((testActions.TestAction != null), "Executing test script...");
SqlExecutionResult[] testResults = TestService.Execute(this.ExecutionContext, this.PrivilegedContext, testActions.TestAction);
}
finally
{
// 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);
}
}
是否有任何其他的方法来做到这一点,而不诉诸于测试后删除数据?
我找到了答案在https://msdn.microsoft.com/en-us/library/aa833153.aspx – runamuk0