gpt4 book ai didi

.net - 如何为数据驱动的单元测试引用嵌入的数据文件?

转载 作者:行者123 更新时间:2023-12-04 21:26:49 24 4
gpt4 key购买 nike

这是我的场景,我想进行数据驱动的单元测试,并且为了独立于环境,我想将数据文件嵌入到我的程序集中。我如何在单元测试的 DataSourceAttribute 中引用?。

我正在尝试使用 Microsoft Jet OleDB 提供程序访问 Excel 2003 文件。当文件在硬盘驱动器中时,单元测试工作正常,但当我尝试访问嵌入的程序集文件时,单元测试工作正常。这是我的例子:

原装

[DeploymentItem("IHRM.Infrastructure.EFRepositories.Tests\DataDriven.xls"), DataSource("System.Data.OleDb", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\DataDriven.xls;扩展属性=\"Excel 8.0\"", "Sheet1$", DataAccessMethod.Sequential), TestMethod]

建议

[DataSource("System.Data.OleDb", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "这里放什么" ;扩展属性=\"Excel 8.0\"", "Sheet1$", DataAccessMethod.Sequential), DeploymentItem("IHRM.Infrastructure.EFRepositories.Tests\DataDriven.xls"), TestMethod]

最佳答案

我怀疑 JET OLEDB 是否支持基于嵌入式资源连接到数据库。我看到两个选项可以解决这个问题:

1.提取资源

在您的测试中 ClassInitialize , 你可以 extract the assembly resource到一个已知位置。请参阅 JET 连接字符串中的此已知位置。在测试的 ClassCleanup 中再次清理提取的文件.

2.编写自己的数据源

您也许可以自己编写 DbProviderFactory它支持访问嵌入的 excel 文件。要使 mstest 可以发现这样的工厂,您必须register your factoryDbProviderFactories .

要查看 mstest 如何在内部处理数据源,请打开 Microsoft.VisualStudio.QualityTools.Common.dllreflector 组装并通过拆卸 Microsoft.VisualStudio.TestTools.Utility.TestDataConnection.Create 开始追踪这条线索.

关于.net - 如何为数据驱动的单元测试引用嵌入的数据文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1945863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com