gpt4 book ai didi

c# - 并非所有测试都在包含数组的参数化 NUnit TestFixture 中运行

转载 作者:太空狗 更新时间:2023-10-29 20:31:31 27 4
gpt4 key购买 nike

我有一个测试类如下:

[TestFixture("someurl1", new[] { "param1", "param2" }, 15)]
[TestFixture("someurl2", new[] { "param3" }, 15)]
public class my_test
{
public my_test(string url, string[] fields, int someVal)
{
// test setup
}
}

在 ReSharper 6.1 和 NUnit 2.5.10 中运行此测试时,测试没有像预期的那样运行两次,它只运行一次。在我看到的测试结果中列出了

my_test("someurl1", System.String[], 15)

这让我认为这两个固定装置被视为相同,并且 NUnit 没有区分两个测试中的字符串数组。

作为解决方法,我在构造函数中添加了一个虚拟参数。如果我为每个夹具将其设置为不同的值,那么所有测试都会运行。

难道不能让 TestFixtures 的数组包含不同的值吗?我刚刚从 ReSharper 5 升级,所以我想知道这是否相关。我已经阅读了 6.x 中参数化测试的一些问题。

最佳答案

[TestFixture("someurl1", "param1|param2", 15)]
[TestFixture("someurl2", "param3", 15)]
public class my_test
{
private string[] _fields;

public my_test(string url, string fieldList, int someVal)
{
_fields = fieldList.Split('|');
// test setup
}

[Test]
public void listFields()
{
foreach (var field in _fields)
{
Console.WriteLine(field);
}
}
}

关于c# - 并非所有测试都在包含数组的参数化 NUnit TestFixture 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10029706/

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