我目前正在嘗試使用“Effort”框架( http://effort.codeplex.com/wikipage?title=Tutorials&referringTitle=Home )對實體框架的上下文類進行單元測試
如果我的單元測試項目有兩個包含方法的類使用努力,那麼我得到以下錯誤:
參數'xmlReader'無效。必須至少提供一個.ssdl工件。
看起來,使用多個方法在多個類中使用工作會導致錯誤。我寧願不在一個班級中擁有所有的單元測試功能。
代碼測試正在運行:
IDataLoader loader = new Effort.DataLoaders.CsvDataLoader(Path.Combine(TestContext.DeploymentDirectory, "csvFiles"));
using (EntityConnection connection = Effort.EntityConnectionFactory.CreateTransient("name=Entities", loader))
{
BussinnesLayer.Customer[] customers = Customer.GetCustomers(connection);
Assert.IsTrue(customers.Length > 0, "Customer list length = 0");
}
App.Config包含以下實體連接字符串:(刪除敏感數據)
<add name="Entities" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string="data source=servername;initial catalog=database;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
任何幫助,將不勝感激。
我遇到了同樣'xmlReader'無效的錯誤。
問題是找到ssdl工件。它在稍後引用我的Entity Framework對象的測試中工作,但只是自己創建連接會失敗。
這對我有所幫助。
嘗試修改App.Config行以包含程序集名稱而不是*。因此,如果您的程序集名為Project1.EF,您的App.Config行將類似於:
<add name="Entities" connectionString="metadata=res://Project1.EF/Model.csdl|res://Project1.EF/Model.ssdl|res://Project1.EF/Model.msl;provider=System.Data.SqlClient;provider connection string="data source=servername;initial catalog=database;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />