gpt4 book ai didi

C# SMO 数据库不记录创建

转载 作者:可可西里 更新时间:2023-11-01 08:48:36 26 4
gpt4 key购买 nike

我有一个集成测试,它创建了一个 Microsoft.SqlServer.Management.Smo.Database 类型的数据库:

var defaultConnectionConnectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString();
var sqlConnection = new SqlConnection(defaultConnectionConnectionString);
var serverConnection = new ServerConnection(sqlConnection);
_server = new Server(serverConnection);
_database = new Database(_server, _integrationTestingDatabaseName);
_database.Create();

当我通过 NUnit 的 CLI 运行集成测试时,当测试完成时,用于创建数据库的 SQL 被转储到控制台。这会使输出变得困惑,这不是我在运行此集成测试时想要看到的。我怎样才能阻止这种情况发生?

最佳答案

这是徒劳的,无法复制。

我猜可能有些困惑,也许您的某个脚本执行了 SQL Print 或类似的转移注意力的操作。因为执行此单元测试以通过 SQL 管理对象创建 SQL DB 不会输出 SQL 创建脚本。

enter image description here

即使直接从命令行执行也不会记录 SQL 创建脚本。这是重现:

using NUnit.Framework;
using ConsoleApplication1;
using System.IO;
using System.Diagnostics;

[TestFixture]
public class UnitTest1
{
static FileStream objStream;

[SetUp]
public static void Setup()
{
objStream = new FileStream(AppDomain.CurrentDomain.BaseDirectory + "\\AAA_Output.txt", FileMode.OpenOrCreate);
TextWriterTraceListener objTraceListener = new TextWriterTraceListener(objStream);
Trace.Listeners.Add(objTraceListener);
Trace.WriteLine("===================================");
Trace.WriteLine("App Start:" + DateTime.Now);
Trace.WriteLine("===================================");
}

[TestCase]
public void TestMethod1()
{
Program.CreateDB();
}

[TearDown]
public static void TearDown()
{
Trace.Flush();
objStream.Close();
}
}

结果:

enter image description here

关于C# SMO 数据库不记录创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45679648/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com