Ich teste das MbUnit Framework und möchte meine Testdatenbank nach jedem Test in einem persistenten Zustand halten. Wie kann ich das erreichen?MbUnit Rollback
Dies ist, was ich versuche, aber meine Tabelle ist gefüllt, nachdem der Test abgeschlossen ist.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Gallio.Framework;
using MbUnit.Framework;
using NHibernate;
using NHibernate.Cfg;
namespace BusinessLayer.Tests
{
[TestFixture]
public class PersonNHibernateTests
{
[Test]
[Rollback]
public void CanSavePerson()
{
Configuration config = new Configuration();
config.Configure();
ISessionFactory factory = config.BuildSessionFactory();
using (ISession session = factory.OpenSession())
{
using (ITransaction tx = session.BeginTransaction())
{
const string CONST_STR_FIRSTNAME = "Stephen";
const string CONST_STR_LASTNAME = "Manga";
DateTime birthdate = new DateTime(1974, 6, 20);
Person p = new Person
{
FirstName = CONST_STR_FIRSTNAME,
LastName = CONST_STR_LASTNAME,
Birthdate = birthdate
};
session.SaveOrUpdate(p);
session.Flush();
tx.Commit();
}
}
}
}
}
Edit:
Nach einiger Lektüre ich zum Verständnis gekommen sind, die Distributed Transaction Coordinator aktiviert werden muss. Nach dem Start dieses Service und Prüfung immer noch keinen Erfolg :(
Hilft das Aktualisieren von MBUnit auf Version 3.0.6? Von [Ankündigung Gallio und MbUnit v3.0.6] [1] > Geändert [Rollback], um einen COM + Transaktionskontext wie MbUnit v2 ursprünglichen Rollback-Attribut einzugeben. Dies sollte Kompatibilitätsprobleme beheben, die andere bemerkt haben. [1]: http://blog.bits-in-motion.com/2009/03/announcing-gallio-and-mbunit-v306.html – Bender