0

MbUnit フレームワークをテストしており、各テスト後にテスト データベースを永続的な状態に維持したいと考えています。どうすればこれを達成できますか?

これは私が試みていることですが、テストが完了するとテーブルがいっぱいになります。


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

                }

            }
        }

    }
}

編集:

少し読んだ後、分散トランザクションコーディネーターを有効にする必要があることを理解しました。このサービスを開始してテストしてもまだ成功しません:(

4

3 に答える 3

1

コードにCOMMITステートメントがあります。おそらくそれを削除する必要があります。

于 2009-04-16T17:37:58.803 に答える
0

私はProteusを使用しています。セットアップと使用が簡単です。必要なのは、Setups TearDownsにコードを追加し、データベースの「スナップショット」を使用してフォルダーを準備することだけです。

于 2009-03-27T16:12:15.590 に答える