2017-08-14 18 views
12

mam test integracyjny, który tworzy bazę danych typu Microsoft.SqlServer.Management.Smo.Database:C# SMO Database nie zalogujesz tworzenie

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

Kiedy uruchamiam test Integracja przez CLI dla NUnit, gdy zakończy teście, SQL dla tworzenie bazy danych jest zrzucane na konsolę. To przytłacza wyjście i nie jest czymś, co chcę zobaczyć podczas uruchamiania tego testu integracji. Jak mogę temu zapobiec?

+1

Kiedy biegnę wyżej w aplikacji konsoli (VS2015/Smo 12,0), nie można uzyskać żadnych wyjście SQL. Czy widzisz to samo zachowanie w aplikacji konsoli? Czy dzieje się to TYLKO podczas pracy z NUnit CLI? W rzeczywistości, dla mnie, chciałbym, aby wygenerowane wygenerowane zapytania SQL były rejestrowane! Jaka jest twoja wersja zestawu Smo? – Subbu

+1

Czy planujesz odpowiedzieć na powyższe pytania? –

Odpowiedz

3

To jest gęś i nie można go odtworzyć.

Zgaduję, że może jakieś zamieszanie, być może jeden z twoich skryptów robi SQL Print lub jakiś czerwony śledzia w ten sposób. Ponieważ wykonanie tego testu jednostkowego w celu utworzenia SQL dB za pośrednictwem obiektów Sql Management Objects powoduje, że , a nie, powstaje skrypt SQL Creation.

enter image description here

Nawet wykonując bezpośrednio z wiersza polecenia nie rejestruje tworzenie skryptu SQL. Oto 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(); 
    } 
} 

Wyniki:

enter image description here