gpt4 book ai didi

c# - mstest 的 DataSource 属性的 .Net 核心替代方案是什么?

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

从下面了解到,DataSource 属性在 MSTest 的 .net 核心项目上不再受支持。那么有什么替代方案呢?

链接: https://learn.microsoft.com/en-us/visualstudio/test/how-to-create-a-data-driven-unit-test?view=vs-2019

信息:.NET Core 不支持 DataSource 属性。如果您尝试在 .NET Core 或 UWP 单元测试项目中以这种方式访问​​测试数据,您将看到类似于“‘TestContext’不包含‘DataRow’的定义并且没有可访问的扩展方法‘DataRow’”的错误可以找到接受类型为“TestContext”的第一个参数(您是否缺少 using 指令或程序集引用?)”。

最佳答案

2020 年 9 月 7 日 - 无解决方法

有一个 Unresolved 问题 issue-233关于这个,没有关于何时可以修复的评论。有一些解决方法:

DynamicDateAttribute(CSV 示例)

private static string[] SplitCsv(string input)
{
var csvSplit = new Regex("(?:^|,)(\"(?:[^\"]+|\"\")*\"|[^,]*)", RegexOptions.Compiled);
var list = new List<string>();
foreach (Match match in csvSplit.Matches(input))
{
string value = match.Value;
if (value.Length == 0)
{
list.Add(string.Empty);
}

list.Add(value.TrimStart(','));
}
return list.ToArray();
}

private static IEnumerable<string[]> GetData()
{
IEnumerable<string> rows = System.IO.File.ReadAllLines(@"Resources\NameAddressCityStateZip.csv").Skip(1);
foreach (string row in rows)
{
yield return SplitCsv(row);
}
}

[TestMethod]
[DynamicData(nameof(GetData), DynamicDataSourceType.Method)]
//x [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", @"Resources\NameAddressCityStateZip.csv", "NameAddressCityStateZip#csv", DataAccessMethod.Sequential)]
public void TestMethod1(string input, string expected)
{
// Arrange
//x string input = _testContext.Properties["Data"].ToString(); //x _testContext.DataRow["Data"].ToString();
//x string expected = _testContext.Properties["Expected"].ToString(); //x _testContext.DataRow["Expected"].ToString();
var parser = _serviceProvider.GetService<Parser>();

// Act
string actual = parser.MultiParser(input, ModeType.NameAddressCityStateZipCountry).ToString();

// Assert
Assert.AreEqual(expected, actual);
}

但它也有缺点。

自己移植代码

如评论中所示 here

等待执行

关于c# - mstest 的 DataSource 属性的 .Net 核心替代方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63776942/

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