Database 遗留数据库、Fluent NHibernate和测试我的映射

Database 遗留数据库、Fluent NHibernate和测试我的映射,database,unit-testing,nhibernate,fluent-nhibernate,build-process,Database,Unit Testing,Nhibernate,Fluent Nhibernate,Build Process,正如文章标题所暗示的,我有一个遗留数据库(不确定这是否重要),我正在使用Fluent NHibernate,我正在尝试使用 我的问题实际上是一个过程,我想在VisualStudio中使用内置单元测试框架进行本地构建时测试这些。显然,这意味着(我认为)我需要一个数据库。在构建过程中有哪些选项?如果我使用内存中的数据库,NHibernate或Fluent NHibernate是否有某种机制从目标数据库中提取数据库模式,或者内存中的数据库可以这样做?我是否需要手动获取架构以馈送到内存中的数据库 理想情

正如文章标题所暗示的,我有一个遗留数据库(不确定这是否重要),我正在使用Fluent NHibernate,我正在尝试使用

我的问题实际上是一个过程,我想在VisualStudio中使用内置单元测试框架进行本地构建时测试这些。显然,这意味着(我认为)我需要一个数据库。在构建过程中有哪些选项?如果我使用内存中的数据库,NHibernate或Fluent NHibernate是否有某种机制从目标数据库中提取数据库模式,或者内存中的数据库可以这样做?我是否需要手动获取架构以馈送到内存中的数据库


理想情况下,我想让其他开发人员不必考虑这个设置,除非他们破坏了构建,因为测试没有通过。

NHibernate无法重新创建数据库的模式,并且因为它是一个遗留系统,您可能无法从NH生成模式。最好的方法是在事务中进行集成测试,并在完成后回滚。我们对实时系统定期刷新的开发和测试数据库运行集成测试。

也许我弄错了,或者我没有正确理解这个问题,因为英语不是我的母语,但只要映射正确,并且遗留系统有一个.NET数据提供方,不管它是什么,NHibernate不能导出DB模式吗?你的英语很好,我的答案可能会更好。除非数据库是从SchemaExport创建的,否则SchemaExport不太可能生成相同的模式。对于一个遗留系统,我确信它会有所不同。因此,在较高的层次上,我必须从SQL Server获取模式。我还认为,我必须得到一个较小版本的数据库(超过50GB),其数据量刚好足以在我的项目上运行合理的集成测试。谢谢你的回复!我发现这篇文章很有帮助: