노력 단위 테스트 : 'xmlReader'인수가 유효하지 않습니다.

c# effort unit-testing

문제

현재 "노력"프레임 워크 ( http://effort.codeplex.com/wikipage?title=Tutorials&referringTitle=Home )로 Entity Framework의 컨텍스트 클래스를 단위 테스트하려고합니다.

내 단위 테스트 프로젝트에 노력을 사용하는 두 클래스가 있다면 다음 오류가 발생합니다.

'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는 엔터티 연결 문자열에 대해 다음을 포함합니다. (중요한 데이터 제거됨)

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는 합법적입니까? 예, 이유를 알아보십시오.