NHibernate用log4net和NUnit调试

新建类库项目:入图

建好后添加引用:

1。 NHibernate.dll

2。 log4net.dll

3。 nunit.framework.dll  (在安装好的软件的目录里/bin/nunit.framework.dll)

4。 还有自己写好 Model.dll  (实体类映射文件和)

然后在添加一个应用程序配置文件:

配置文件内容(关于Nhibernate和log4net的配置信息)如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.2.0.3001,Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>

  <nhibernate>
    <add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
    <add key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver"/>
    <add key="hibernate.connection.connection_string" value="server=localhost;uid=sa;pwd=;database=test"/>
    <add key="hibernate.connection.isolation" value="ReadCommitted"/>
    <add key="hibernate.dialect" value="NHibernate.Dialect.MsSql2000Dialect"/>
    <add key="show_sql" value="true" />
  </nhibernate>
  <log4net>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="ConsoleAppender" />
    </root>

  </log4net>

</configuration>
注意:<add key="show_sql" value="true" /> 不能少啊!

///

测试的类文件如下:

using System;
using System.Collections.Generic;
using System.Text;
using log4net;
using log4net.Config;
using NHibernate;
using NHibernate.Cfg;
using NUnit.Framework;
using System.Xml;

using Common;           我自己写的对Nhibernate 的封装
using Model;                 //我自己写的实体类

namespace TestClassLibrary
{  
    [TestFixture]                        //Nunit 的测试类的标识
    public class Class1
    {
        ILog logger;
        ISession session;
        ITransaction trans;

        [TestFixtureSetUp]    

        //这个属性用来标记为整个test fixture初始化资源方法一次的方法.       

        public void stepInstall()
        {
            XmlConfigurator.Configure();          //这句话不能少,否则看不到log4net的信息
            logger = LogManager.GetLogger(typeof(Class1)); //这句话不能少,否则看不到log4net的信息
        }

        [TearDown]                 //测试时的共享数据(每个测试方法运行之后运行)
        public void dispose()
        {
            trans.Commit();
            session.Close();
        }

        [SetUp]                       //测试时的共享数据(每个测试方法运行之前运行)
        public void step()
        {
            session = Common.SessionFactory.OpenSession("Model");
            trans = session.BeginTransaction();
        }

        [Test]                      //测试方法增加一个记录
        public void test1()
        {
          
            Book b = new Book();
            b.Id = "test112";
            b.BookName = "chy12";
            session.Save(b);
        }

        [Test]                  //查找增加的记录,是否存在
        public void test2()
        {
            Book b = (Book)session.Get(typeof(Book), "test112");
            Assert.IsTrue(b.BookName.Trim() == "chy12");
        }

    }
}

///

然后,设置工程的属性如图将Nunit.exe设为启动程序:

 

 就可以启动程序了,程序将自动运行nunit.exe如图会看到测试的方法test1和test2:

 选种test1 点击Run,效果如图:

 

 呵呵,看到信息了吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值