私はここで同様の問題を扱っているいくつかの質問を見てきましたが、どれも私を助けてくれませんでした。
MVC3プロジェクトでVS2010でNUnitを使用しています。私はテストプロジェクトを持っており、最初のテストEvarを書いています!:-)
私がついにそれに到達したことを誇りに思いませんか?!
これが私が得ているエラーです
Microsoft.Practices.ServiceLocation.ActivationException:データベースタイプのインスタンスを取得しようとしたときにアクティブ化エラーが発生しました。キー "MyConnection" ----> Microsoft.Practices.Unity.ResolutionFailedException:依存関係の解決に失敗しました。タイプ="Microsoft.Practices。 EnterpriseLibrary.Data.Database "、name="MyConnection"。例外が発生しました:解決中。例外は次のとおりです。InvalidOperationException-タイプデータベースを構築できません。この値を提供するようにコンテナを構成する必要があります。
私はweb.config
これらすべてを使用して構成しましたが、テストで実行されていない場合はデータが完全に返されるため、構成ごとに停止しているのではなく、NUnitで使用すると停止しているだけです。
これが私の接続情報です:
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
...
<dataConfiguration defaultDatabase="MyConnection" />
<connectionStrings>
<add name="MyConnection" connectionString="Data Source=MyServerName;Initial Catalog=MyDB;user id=MyUser;password=MyPassword"
providerName="System.Data.SqlClient" />
</connectionStrings>
NuGetを使用してDaaBをインストールし、クリーンな手動リファレンスも実行しました。いずれにせよ、データは通常の使用では正常にロードされますが、テストでは次の行で停止します。
var database = DatabaseFactory.CreateDatabase("MyConnection");
この方法では
public IEnumerable<SchoolSearchResultsDTO> Find(SchoolSearchInputDTO dto) {
List<SchoolSearchResultsDTO> fullList;
var database = DatabaseFactory.CreateDatabase("MyConnection");
using (var command = database.GetStoredProcCommand("dbo.usp_School_SearchBySchoolName")) {
database.AddInParameter(command, "@I_strSchoolName", DbType.String, dto.SearchTerm);
database.AddInParameter(command, "@I_intNumberOfRecords", DbType.Int32, dto.MaxSearchResults);
using (var reader = database.ExecuteReader(command)) {
fullList = new List<SchoolSearchResultsDTO>();
while (reader.Read()) {
var fullRecord = new SchoolSearchResultsDTO();
fullRecord.SchoolID = reader.GetInteger("SchoolId");
fullRecord.SchoolName = reader.GetString("SchoolName");
fullRecord.IsDetailedDisplayMode = reader.GetBoolean("IsDetailedDisplayMode");
fullList.Add(fullRecord);
}
reader.Close();
}
}
return fullList;
}
他のすべての投稿では、構成の誤りなどについて説明しています。正しく構成されていると確信しています。そうしないと、通常の使用ではデータを取得できません。つまり、NUnitとDaaBが一緒に関係しているのです。
明るいアイデアはありますか?:-) 皆さんありがとう!