0

リポジトリを呼び出し、リポジトリが新しいレコードを作成するUnitTestingプロジェクトがありますTestMethodPostgreSQL

このテストを実行すると、例外がスローされます。

メッセージ:The type initializer for 'NHibernate.Cfg.Configuration' threw an exception.

内部例外:{"The type initializer for 'NHibernate.LoggerProvider' threw an exception."}

スタックトレース:

   at NHibernate.Cfg.Configuration..ctor()
   at FluentNHibernate.Cfg.FluentConfiguration..ctor()
   at FluentNHibernate.Cfg.Fluently.Configure()
   at Woo.Test.UnitTest.FillCompany() 

から呼び出すと、リポジトリが正常に機能しますASP.NET MVC Applictaion

これは私のFluent NHibernate構成です:

_configuration = Fluently.Configure().Database(PostgreSQLConfiguration.Standard.ConnectionString(c => c
               .FromConnectionStringWithKey("DefaultConnection"))).Mappings(m => m.FluentMappings.AddFromAssemblyOf<Company>())
               .ExposeConfiguration(cfg => new SchemaUpdate(cfg).Execute(false, true)).BuildConfiguration();
_sessionFactory = _configuration.BuildSessionFactory();

したがって、問題は単体テストプロジェクトのみです。

App.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configurations>
    <connectionStrings>
      <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Server=localhost;Port=5432;Database=Test;User=postgres;Password=Test;" />
    </connectionStrings>
  </configurations>
</configuration>
4

2 に答える 2

1

app.config は単体テストの bin ディレクトリにある必要があります。app.config のプロパティを確認し、デプロイされているかどうかを確認します。

于 2013-06-20T13:48:48.617 に答える
1

単体テストの展開の動作は異なります。*.testsettings ファイルから bin ディレクトリ内にデプロイする必要のあるファイル/アセンブリをマークする必要があります。以下の画面を参照してください。

ここに画像の説明を入力

あとは、不足しているファイル/アセンブリを見つけて、testsettings ファイルを介して展開するだけです。

于 2013-06-20T14:38:19.123 に答える