gpt4 book ai didi

c# - nunit 中提供的参数数量错误

转载 作者:行者123 更新时间:2023-11-30 14:30:56 24 4
gpt4 key购买 nike

使用 C# 在 selenium 中使用 Testcasesource 开发测试用例。在 NUnit 中运行测试用例后,它显示错误为“提供的参数数量错误”。这是我的测试用例代码

[TestFixture]
class testcases
{

static String[] exceldata= readdata("Inputdata.xls", "DATA", "TestCase1");


[SetUp]
public void Setup()
{
//setupcode here

}
[Test, TestCaseSource("exceldata")]
public void Sample (String level,String Username,String password,String FirstName)
{
//testcase code here

}

[TearDown]
public void TearDown()
{
tstlogic.driverquit();
}

检索到 4 个值,我可以在 NUnit 中看到这些值。但它将错误显示为“提供的参数数量错误”。有人可以帮忙吗?

最佳答案

标记为 TestCaseSource 的方法应该返回一堆“TestCases”——其中每个 TestCase 都是测试方法所需的一组输入。您案例中的每个测试输入集都必须有 4 个字符串参数。

所以 TestCaseSource 方法应该返回一个包含内部 4 个成员数组的对象[]。看下面的例子

[Test, TestCaseSource("DivideCases")]
public void DivideTest(int n, int d, int q)
{
Assert.AreEqual( q, n / d );
}

static object[] DivideCases =
{
new object[] { 12, 3, 4 },
new object[] { 12, 2, 6 },
new object[] { 12, 4, 3 }
};

在您的情况下,我认为您的 testCaseSource 方法返回 4 个字符串。 NUnit 将其读取为 4 个输入参数集……每个包含一个字符串。尝试用一个字符串调用带有 4 个参数的参数化测试方法 => 您看到的错误。

例如您可以通过像这样设置 DivideCases 来重现您的错误

private static int[] DivideCases = new int[] { 12, 3, 4 };  // WRONG. Will blow up

关于c# - nunit 中提供的参数数量错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21594095/

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