努力単位テスト:引数 'xmlReader'が無効です

c# effort unit-testing

質問

私は現在、エンティティフレームワークのコンテキストクラスを "Effort"フレームワーク( http://effort.codeplex.com/wikipage?title=Tutorials&referringTitle=Home )でユニットテストしようとしています

私の単体テストプロジェクトに、努力を使用する2つのクラスがある場合、次のエラーが発生します。

引数 'xmlReader'は無効です。最低1つの.ssdlアーティファクトを指定する必要があります。

1つ以上のクラスにわたって労力を使って1つ以上のメソッドを使用すると、エラーが発生するようです。私はむしろ1つのクラスですべてのユニットテスト関数を持っているわけではありません。

テストが実行されているコード:

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には、エンティティ接続文字列の次の情報が含まれています。(機密データの削除)

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");
}

どんな助けもありがとう。

受け入れられた回答

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



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ