Test der Testeinheit: Argument 'xmlReader' ist nicht gültig


Frage

Ich versuche gerade, eine Kontextklasse des Entity Framework mit dem Framework "Effort" zu testen ( http://effort.codeplex.com/wikipage?title=Tutorials&referringTitle=Home )

Wenn mein Unit-Testprojekt zwei Klassen enthält, die Methoden verwenden, die Aufwand erfordern, bekomme ich den folgenden Fehler:

Argument 'xmlReader' ist nicht gültig. Es muss mindestens ein .ssdl-Artefakt bereitgestellt werden.

Es scheint so zu sein, dass der Fehler verursacht wird, wenn mehr als eine Klasse mit der Methode "one than" arbeitet. Ich habe nicht alle meine Unit-Test-Funktionen in einer Klasse.

Code, an dem der Test ausgeführt wird:

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 enthält Folgendes für die Entitätsverbindungszeichenfolge: (entfernte vertrauliche Daten)

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

Jede Hilfe wäre willkommen.

Akzeptierte Antwort

Ich lief in den gleichen "xmlReader" ist kein gültiger Fehler.

Das Problem bestand darin, das ssdl-Artefakt zu lokalisieren. Es funktionierte in Tests, die später auf meine Entity Framework-Objekte verwiesen, aber das Erstellen einer Verbindung allein fehlschlug.

Das hat mir geholfen.

Versuchen Sie, Ihre App.Config-Zeile zu ändern, um den Assemblynamen statt des * einzubeziehen. Wenn Ihre Assembly also Project1.EF heißt, würde Ihre App.Config-Zeile ungefähr so ​​aussehen:

<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" />




Lizenziert unter: CC-BY-SA
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum