努力单元测试:参数 'xmlReader' 无效

Effort Unit test: Argument 'xmlReader' is not valid

我目前正在尝试使用 "Effort" 框架 (http://effort.codeplex.com/wikipage?title=Tutorials&referringTitle=Home)

对 Entity Framework 的上下文 class 进行单元测试

如果我的单元测试项目有两个 classes 包含方法 use effort 然后我得到以下错误:

参数 'xmlReader' 无效。必须至少提供一个 .ssdl 工件。

似乎是有一种方法在多个 class 上使用努力导致错误。我宁愿不要将所有单元测试功能集中在一个 class.

测试代码是运行:

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=&quot;data source=servername;initial catalog=database;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

如有任何帮助,我们将不胜感激。

我运行进入同样的'xmlReader' is not valid error.

原来是定位 ssdl 工件的问题。它在后来引用我的 Entity Framework 对象的测试中起作用,但仅自行创建连接会失败。

This帮了我。

尝试修改您的 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=&quot;data source=servername;initial catalog=database;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />