Test dell'unità sforzo: Argument 'xmlReader' non è valido

c# effort unit-testing

Domanda

Attualmente sto cercando di testare una classe di contesto di Entity Framework con il framework "Effort" ( http://effort.codeplex.com/wikipage?title=Tutorials&referringTitle=Home )

Se il mio progetto di test unitario ha due classi che contengono metodi usano sforzo allora ottengo il seguente errore:

L'argomento 'xmlReader' non è valido. È necessario fornire almeno un artefatto .ssdl.

Sembra che l'avere più di un metodo usando lo sforzo su più di una classe causi l'errore. Preferisco non avere tutte le mie funzioni di test unitario in una classe.

Codice il test è in esecuzione:

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 contiene quanto segue per la stringa di connessione dell'entità: (dati sensibili rimossi)

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

Qualsiasi aiuto sarebbe apprezzato.

Risposta accettata

Ho eseguito lo stesso 'xmlReader' non è un errore valido.

Il problema si è verificato localizzando l'artefatto ssdl. Ha funzionato in test che in seguito hanno fatto riferimento ai miei oggetti Entity Framework, ma la sola creazione di una connessione da sola sarebbe fallita.

Questo mi ha aiutato.

Prova a modificare la linea App.Config per includere il nome dell'assembly anziché *. Quindi se il tuo assembly è denominato Project1.EF la tua linea App.Config sarà simile a:

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



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché