Wie schreibt die Ausgabe in das [ClassInitialize()] ein Unit-Test-Klasse?

Schreibe ich einige unit-tests für die Persistenz-Schicht von meinem C#.NET -Anwendung. Vor und nach den tests eine test-Klasse ausführen, ich will ein paar Reinigung zu löschen, die evtl. eingefügten dummy-Werte, daher ist diese Reinigung geschieht in den Methoden gekennzeichnet, die mit den Attributen [ClassInitialize()] und [ClassCleanup()].

(Ich weiß, dass ein besserer Weg wäre, um eine in-memory-Datenbank, aber es ist nicht wirklich machbar, so weit wie wir es hängen viele gespeicherte Prozeduren....)

Möchte ich Ausgabe einige Informationen über die Ergebnisse der Reinigung, aber ich kann nicht einen Weg finden, um die Ausgabe in der test-Ergebnisse mit VISUAL Studio 2010.

Dies ist, was ich Tue so weit :

        ///... lots of stuff before ...

        //global for the test run
        private static TestContext context;

        //for each test
        private IRepository repo;

        #region Initialisation and cleanup

        ///<summary>
        ///Execute once before the test-suite
        ///</summary>
        [ClassInitialize()]
        public static void InitTestSuite(TestContext testContext)
        {
            context = testContext;    
            removeTestDataFromDb();    
        }

        [ClassCleanup()]
        public static void CleanupTestSuite()
        {
            removeTestDataFromDb();
        }

        private static void removeTestDataFromDb()
        {
            context.WriteLine("removeTestDataFromDb starting");
            using (ISession session = NHibernateHelper.OpenSession())
            {    
                IDbConnection cn = session.Connection;
                IDbCommand cmd = cn.CreateCommand();
                //remove anyt test data
                cmd.CommandText = @"DELETE FROM SomeTable
                    WHERE somefield LIKE 'easyToFindTestData%Test'";
                int res = cmd.ExecuteNonQuery();    
                context.WriteLine("removeTestDataFromDb done - affected {0} rows", res);
            }
        }


        [TestInitialize()]
        public void InitTest()
        {
            repo = new MyRepositoryImplementation();
        }

        [TestCleanup()]
        public void CleanupTest()
        {
            //cleanup       
            repo = null;
        }

        #endregion

Ich versuche, Kontext.WriteLine() ...

Ich habe auch versucht nur mit Konsole.WriteLine() mit dem gleichen Ergebnis.

Wie schreibst du auf der standard-Ausgabe in die ClassInitialize Teil und wo kann man den Zugang, die Ausgabe ?

InformationsquelleAutor tsimbalar | 2010-12-07
Schreibe einen Kommentar