新建类库项目:入图
建好后添加引用:
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,效果如图:
呵呵,看到信息了吧!