问题描述
我在 MSTest 框架下用 c# 编写了以下数据驱动测试代码,作为 Visual Studio 2019 Professional 的一部分。第一种方法使用 csv 文件,第二种方法使用 excel 文件作为数据源。
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
namespace MyTest
{
[TestClass]
public class UnitTest1
{
private TestContext context;
public TestContext TestContext
{
get { return context; }
set { context = value; }
}
[DataTestMethod]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",@"|DataDirectory|\data\data.csv","data#csv",DataAccessMethod.Sequential)]
public void MyTestMethod1()
{
Assert.AreEqual(context.DaTarow["Val1"],context.DaTarow["Val2"]);
}
[DataTestMethod]
[DeploymentItem(@"|DataDirectory|\data\data.xlsx")]
[DataSource("System.Data.Odbc",@"Dsn=Excel Files;dbq=|DataDirectory|\data\data.xlsx;driverid=790;maxbuffersize=2048;pagetimeout=5","Sheet1$",DataAccessMethod.Sequential)]
public void MyTestMethod2()
{
Assert.AreEqual(Convert.ToInt16(context.DaTarow["Val1"]),Convert.ToInt16(context.DaTarow["Val2"]));
}
}
}
csv和excel文件中的数据简单的像这样:
Val1,Val2
1,1
2,2
3,3
4,4
5,5
奇怪的问题是,当我通过在 Visual Studio 的测试资源管理器中选择测试文件并单击“运行测试”来运行这两个测试时,第二个测试(使用 excel 数据源)将失败并显示错误消息:>
单元测试适配器无法连接到数据源或读取数据。有关对此错误进行故障排除的详细信息,请参阅 MSDN 库中的“对数据驱动的单元测试进行故障排除”(http://go.microsoft.com/fwlink/?LinkId=62412)。堆栈跟踪:TestDataSource.GetData(ITestMethod testMethodInfo,ITestContext testContext)
但是,如果我只运行此测试而不启动任何其他测试,那么它会按预期成功。这里有什么问题?任何人都可以提出可能的原因吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)