2017-08-14 18 views
12

Tôi có một thử nghiệm hội nhập tạo ra một cơ sở dữ liệu của loại Microsoft.SqlServer.Management.Smo.Database:C# SMO không đăng nhập tạo

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(); 

Khi tôi chạy thử nghiệm hội nhập thông qua CLI cho NUnit, khi kết thúc kiểm tra, các SQL cho việc tạo cơ sở dữ liệu được đổ vào bàn điều khiển. Điều này clutters lên đầu ra và không phải là cái gì tôi muốn xem khi chạy thử nghiệm tích hợp này. Làm thế nào tôi có thể ngăn chặn điều này xảy ra?

+1

Khi tôi chạy ở trên trong một ứng dụng giao diện điều khiển (VS2015/SMO 12.0), tôi không nhận được bất kỳ kết quả SQL. Bạn cũng nhìn thấy hành vi tương tự trong ứng dụng bảng điều khiển? Điều này có xảy ra khi chạy với NUnit CLI không? Trong thực tế, đối với tôi, tôi muốn xem các SQL được tạo đã đăng nhập! Ngoài ra, phiên bản lắp ráp Smo của bạn là gì? – Subbu

+1

Bạn có dự định trả lời các câu hỏi ở trên không? –

Trả lời

3

Đây là cuộc săn ngỗng và không thể sao chép được.

Tôi đoán có thể có một số nhầm lẫn, có lẽ một trong các tập lệnh của bạn thực hiện một số SQL Print hoặc một số cá trích đỏ như vậy. Bởi vì thực hiện bài kiểm tra đơn vị này để tạo ra một dB SQL thông qua các đối tượng quản lý SQL nên không phải là xuất tập lệnh tạo SQL.

enter image description here

Thậm chí thực hiện trực tiếp từ dòng lệnh không đăng nhập kịch bản tạo SQL. Đây là repro:

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(); 
    } 
} 

Kết quả:

enter image description here

Các vấn đề liên quan