gpt4 book ai didi

c# - 从命令行运行 MSTest 时出现 Fluent Nhibernate 异常

转载 作者:太空宇宙 更新时间:2023-11-03 11:41:58 26 4
gpt4 key购买 nike

我正在为 Fluent NHibernate 映射编写一些单元测试(这是第一次)。在 visual studio 中运行时,它们运行得非常好。

这是使用 Resharpers 单元测试窗口或内置的 Visual Studio 窗口。

问题出在从 MSTest 运行单元测试时:

mstest /testcontainer:Tests.MyProject.dll

单元测试失败...

我从生成的 trx 文件中得到的唯一错误是:

BlockquoteUnit Test Adapter threw exception: Type is not resolved for member 'FluentNHibernate.Cfg.FluentConfigurationException,FluentNHibernate, Version=1.2.0.694, Culture=neutral, PublicKeyToken=8aa435e3cb308880'..

这没有帮助...我无法调试代码,因为它在 visual studio 中工作得非常好,测试文件中的错误消息没有给我任何信息...

创建 session 的代码是:

    public class InMemoryDatabaseTest : IDisposable
{
private Configuration _configuration;
private ISessionFactory _sessionFactory;
protected ISession _session;

public InMemoryDatabaseTest(Assembly assemblyContainingMappedType)
{
if (_configuration == null)
_sessionFactory = CreateSessionFactory(assemblyContainingMappedType);

_session = _sessionFactory.OpenSession();

new SchemaExport(_configuration).Execute(false, true, false, _session.Connection, Console.Out);
}

private ISessionFactory CreateSessionFactory(Assembly assemblyContainingMappedType)
{
return Fluently.Configure()
.Database(SQLiteConfiguration.Standard.InMemory)
.Mappings(m => m.FluentMappings.AddFromAssembly(assemblyContainingMappedType))
.ExposeConfiguration(cfg => _configuration = cfg)
.BuildSessionFactory();
}

public void Dispose()
{
_session.Dispose();
}
}

我不确定这是否是为单元测试创​​建 session 的正确方法。

任何人都知道出了什么问题:(

最佳答案

我解决了这个问题。结果证明这是一个 PEBKAC 问题。

对于测试配置,我需要将 System.Data.Sqlite 程序集添加到配置中,以便在运行测试之前将其复制到 TestResult 文件夹。

所以 FluentNHibernate 配置异常是 Sqlite 程序集不存在。

添加程序集后,测试在控制台中运行,现在在集成构建上运行。是的。

关于c# - 从命令行运行 MSTest 时出现 Fluent Nhibernate 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4524284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com