我有大约1600次测试通过,并且我已经使用DeploymentItem和DataSource添加了一个测试来从准备好的XML中获取测试用例。单独测试工作,它甚至可以在整个测试类中工作,但是当我尝试运行所有测试时,所有测试都失败了。我们使用EF和VS测试。
在每次测试中都会出现同样的错误:
OTController_Test.TestInitialize返回异常。 System.InvalidOperationException:System.InvalidOperationException:实体框架提供程序类型' System.Data.Entity.SqlServer.SqlProviderServices,EntityFramework.SqlServer'在具有不变名称&System; System.SData.SqlClient&无法加载。确保使用了程序集限定名称,并且程序集可供正在运行的应用程序使用。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882。
测试看起来像这样:
[DeploymentItem("C:\\Users\\mateusz.sobczyk\\Source\\Repos\\Aplixcom_InsertData\\Aplixcom_InsertData_Test\\XMLGenerator\\Tests\\test.xml")]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\test.xml", "XMLWrappedModel", DataAccessMethod.Sequential)]
[TestMethod]
public void testme()
{
string tmp = TestContext.DataRow["JsonModel"].ToString();
string failinfo = TestContext.DataRow["FailInfo"].ToString();
string TestCategory = TestContext.DataRow["TestCategory"].ToString();
Group obj = System.Web.Helpers.Json.Decode<Group>(tmp);
if (obj == null)
{
AssertAll.Execute(
() => Assert.AreEqual(null, tmp),
() => Assert.AreEqual("[ID:[FailedCreateFailInfo][Nazwa:[FailedCreateFailInfo]", failinfo),
() => Assert.AreEqual("Testy Mocy", TestCategory)
);
}
else
{
switch (obj.ID)
{
case 2:
AssertAll.Execute(
() => Assert.AreEqual("a", obj.Nazwa),
() => Assert.AreEqual("[ID: 2][Nazwa: a]", failinfo),
() => Assert.AreEqual("Testy Mocy", TestCategory)
);
break;
case 3:
AssertAll.Execute(
() => Assert.AreEqual("b", obj.Nazwa),
() => Assert.AreEqual("[ID: 3][Nazwa: b]", failinfo),
() => Assert.AreEqual("Testy Mocy", TestCategory)
);
break;
case 4:
AssertAll.Execute(
() => Assert.AreEqual("b", obj.Nazwa),
() => Assert.AreEqual("[ID: 4][Nazwa: b]", failinfo),
() => Assert.AreEqual("Testy Mocy", TestCategory)
);
break;
}
}
}
我的web.config
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, EntityFramework6.Npgsql" />
</providers>
</entityFramework>
我不知道如何解决这个问题。我试图刷新我的参考文献,但它没有帮助。我如何使它工作?因为从现在开始我想在测试中使用数据源,我希望你能帮助我:)。