C# NUnit和TestCaseSource在VS2019中发现额外的非源测试
我在VS2019中使用了一个NUnit测试,它使用.Net Core 3.1和一个TestCaseSource,提供了一个3元组列表 它按预期工作,我希望测试的案例被发现并运行 但是,测试资源管理器显示的测试方法与无源测试相同。结果是跳过“测试”,组的结果显示为不确定。以下是代码和测试资源管理器映像:C# NUnit和TestCaseSource在VS2019中发现额外的非源测试,c#,.net-core,nunit,C#,.net Core,Nunit,我在VS2019中使用了一个NUnit测试,它使用.Net Core 3.1和一个TestCaseSource,提供了一个3元组列表 它按预期工作,我希望测试的案例被发现并运行 但是,测试资源管理器显示的测试方法与无源测试相同。结果是跳过“测试”,组的结果显示为不确定。以下是代码和测试资源管理器映像: public static IEnumerable<(int, int, int)[]> TestInput { get
public static IEnumerable<(int, int, int)[]> TestInput
{
get
{
yield return new[] {
(0, 2, 3),
(0, 1, 7),
...
[Test]
[TestCaseSource(nameof(TestInput))]
public void CalcTotalTime_Given_known_valid_input_Then_returns_expected_result((int,int,int)[] input)
{
...
公共静态IEnumerable测试输入
{
得到
{
返回新[]{
(0, 2, 3),
(0, 1, 7),
...
[测试]
[TestCaseSource(名称(TestInput))]
public void CalcTotalTime给定已知有效输入然后返回预期结果((int,int,int)[]输入)
{
...
由于这只是一个学习项目,测试中的代码在测试项目中,因此只有一个项目,它的目标是.NETCore3.1
已安装的NuGet软件包包括:
- Microsoft.NET.Test.Sdk v16.7.1
- NUnit v3.12.0
- NUnit3TestAdapter v3.17.0
[TestCase(0,2,3)]
[TestCase(1,2,3)]
public void CalcTotalTime_Given_known_valid_input_Then_returns_expected_result(int a, int b, int c)
{
}
但是正如注释中提到的,行为与原始代码不同。您是否希望每个测试用例处理(1)三个整数?(2)一个元组?(3)整个元组数组?您的代码就是这样编写的(3)我希望它能起作用,但我不清楚你到底想做什么。是的,#3。输入是一个边数组,有开始节点、结束节点和边长度。它们组合起来形成一个图。我希望整个图作为测试的输入。试着产生显式类型…
产生返回新的(int,int,int)[]…
我确实尝试过,但没有成功。我甚至将3元组封装在一个TestData类中,并返回了该类的一个实例,结果是相同的。很可能您发现了一个bug。:-)这与原始代码有所不同……测试需要3个整数。如果用户真的想这样做,那也可以,但这不是一个问题似乎是这样。你是正确的,这是不一样的。测试输入需要一个3元组的列表,其中每个元组表示一个具有两个节点和一个长度的图上的边。