After some consideration, I decided to go with SQLite for my unit tests. The setup speed seems reasonable.
Code:
string dirpath = @"C:\NHibernateDatabase";
Directory.CreateDirectory(dirpath);
string filename = dirpath + @"\"
+ DateTime.Now.ToString("yyyyMMdd-HHmmss-")
+ (DateTime.Now.Ticks % 1000).ToString() + ".db";
System.Diagnostics.Debug.WriteLine("Generating " + filename);
string connectionString = "Data Source=" + filename + ";Version=3";
Hashtable properties = new Hashtable();
properties.Add("hibernate.connection.provider", "NHibernate.Connection.DriverConnectionProvider");
properties.Add("hibernate.dialect", "NHibernate.Dialect.SQLiteDialect");
properties.Add("hibernate.connection.driver_class", "NHibernate.Driver.SQLite20Driver");
properties.Add("hibernate.connection.connection_string", connectionString);
properties.Add("hibernate.query.substitutions", "true=1;false=0");
NHibernate.Cfg.Configuration configuration = new NHibernate.Cfg.Configuration();
configuration.Properties = properties;
NHibernate.Mapping.Attributes.HbmSerializer serializer = NHibernate.Mapping.Attributes.HbmSerializer.Default;
serializer.Validate = true;
configuration.AddInputStream(serializer.Serialize(inAssembly));
SchemaExport export = new SchemaExport(configuration);
SQLiteConnection connection = new SQLiteConnection(connectionString);
connection.Open();
export.Execute(false, true, false, false, connection, null);
connection.Close();
mSessionFactory = configuration.BuildSessionFactory();