使用 excel 文件运行数据驱动测试 (MSTest) 的问题

问题描述

我在 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 (将#修改为@)