我已經在 Visual Studio 中為我的 SQL Server 專案設定了一個單元測驗專案。
測驗本身有效,設定包括部署該資料庫。我的問題是我想要一個“干凈的石板”測驗,每次運行測驗時,資料都會累積。
我嘗試從 SqlDatabaseSetup.cs 手動呼叫“DROP DATABASE”,但此時我似乎沒有 DataConnection。
[TestClass()]
public class SqlDatabaseSetup
{
[AssemblyInitialize()]
public static void InitializeAssembly(TestContext ctx)
{
var q = ctx.DataConnection.CreateCommand();
q.CommandText = "DROP DATABASE MyDb;";
q.ExecuteNonQuery();
// Setup the test database based on setting in the
// configuration file
SqlDatabaseTestClass.TestService.DeployDatabaseProject();
SqlDatabaseTestClass.TestService.GenerateData();
}
}
是否有任何指示應首先重繪 資料庫(無需為每個表手動呼叫 DELETE FROM XX),或者有沒有辦法通過命令為我執行此操作?
uj5u.com熱心網友回復:
解決方法如下:
[AssemblyInitialize()]
public static void InitializeAssembly(TestContext ctx)
{
// Setup the test database based on setting in the
// configuration file
try
{
var conn = SqlDatabaseTestClass.TestService.OpenExecutionContext();
var cmd = conn.Connection.CreateCommand();
cmd.CommandText = "use master; ALTER DATABASE [MyTestDb] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;DROP DATABASE MyTestDb;";
cmd.ExecuteNonQuery();
}
catch
{
}
SqlDatabaseTestClass.TestService.DeployDatabaseProject();
SqlDatabaseTestClass.TestService.GenerateData();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/324867.html
下一篇:Python模擬回傳無效值
