gpt4 book ai didi

datasource - MsTest, DataSourceAttribute - 如何让它与运行时生成的文件一起工作?

转载 作者:行者123 更新时间:2023-12-04 01:49:30 25 4
gpt4 key购买 nike

对于某些测试,我需要使用在 ClassInitialize 方法(通过使用反射)中生成(通过反射)的配置运行数据驱动测试。我尝试了一切,但我无法正确设置数据源。

该测试采用 csv 文件中的类列表(每个类一行),然后将测试到数据库的映射是否正常工作(即尝试从数据库中为每个实体获取一个项目,这将在以下情况下引发异常表结构不匹配)。

测试方法是:

[DataSource(
"Microsoft.VisualStudio.TestTools.DataSource.CSV",
"|DataDirectory|\\EntityMappingsTests.Types.csv",
"EntityMappingsTests.Types#csv",
DataAccessMethod.Sequential)
]
[TestMethod()]
public void TestMappings () {

显然该文件是EntityMappingsTests.Types.csv。它应该在数据目录中。

现在,在 Initialize 方法(用 ClassInitialize 标记)中,我将它们放在一起,然后尝试编写它。

我应该写到哪里?数据目录在哪里?

我试过:
File.WriteAllText(context.TestDeploymentDir + "\\EntityMappingsTests.Types.csv", types.ToString());
File.WriteAllText("EntityMappingsTests.Types.csv", types.ToString());

两者都导致“单元测试适配器无法连接到数据源或读取数据”。更准确:

Error details: The Microsoft Jet database engine could not find the object 'EntityMappingsTests.Types.csv'. Make sure the object exists and that you spell its name and the path name correctly.



那么我应该把那个文件放在哪里呢?

我还尝试将其写入当前目录并取出 DataDirectory 部分 - 结果相同。遗憾的是,这里的调试支持有限。

最佳答案

请使用 technet.microsoft.com/en-us/sysinternals/bb896645 中的 ProcessMonitor 工具.将过滤器放在 MSTest.exe 或关联的 qtagent32.exe 上,找出它尝试从哪些位置加载以及在测试加载过程中的哪个时间点加载。然后请在此处提供有关这些详细信息的更新。

关于datasource - MsTest, DataSourceAttribute - 如何让它与运行时生成的文件一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7509758/

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