excel - 使用 excel 文件运行数据驱动测试 (MSTest) 的问题
问题描述
作为 Visual Studio 2019 Professional 的一部分,我在 MSTest 框架下用 c# 编写了以下数据驱动的测试代码。第一种方法使用 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)
但是,如果我只运行此测试而不启动任何其他测试,那么它将按预期成功。这里有什么问题?任何人都可以请提出它的可能原因吗?
解决方案
推荐阅读
- proxy - Memu Play 模拟器无法与 Proxifier 一起使用
- sql-server - 请求的 OLE DB 提供程序 Microsoft.ACE.OLEDB.16.0 未注册。如果未安装 32 位驱动程序,请在 64 位模式下运行该软件包
- python - 向获取请求的 URL 添加另一个 var?
- python - 从扩展函数返回后使用自定义 Python 扩展的堆损坏 (0xC0000374)
- java - 尝试插入链接列表,但不能插入超过 2 个值
- reactjs - React App 无法在 OpenShift 中调用 Spring Boot Web 服务
- flutter - 如何从我的异步函数返回一个值?
- visual-studio - 检查 Visual Studio 版本并使用 Powershell 安装更新版本
- javascript - 默认情况下使用空格键使主体内的容器可滚动
- html - 实时 sass 编译器的正确路径?[解决了]