Unit testing 在NUnit中重复[TestCase]100次

Unit testing 在NUnit中重复[TestCase]100次,unit-testing,nunit,repeat,webtest,Unit Testing,Nunit,Repeat,Webtest,我正在将循环100次(触发请求并验证响应100次)的webtest转换为NUnit。似乎[Repeat]属性仅适用于[Test],而不适用于[TestCase]或任何其他装饰/属性。最干净的方法是什么?我想用这些参数触发一个测试用例100次,并且我不想在测试用例中添加loopCount参数,也不想在for循环中嵌套act和assert部分 下面的代码只运行一次 [TestCase("arg1", "arg2"), Repeat(100)] public void testing(string a

我正在将循环100次(触发请求并验证响应100次)的webtest转换为NUnit。似乎
[Repeat]
属性仅适用于
[Test]
,而不适用于
[TestCase]
或任何其他装饰/属性。最干净的方法是什么?我想用这些参数触发一个测试用例100次,并且我不想在测试用例中添加
loopCount
参数,也不想在for循环中嵌套act和assert部分

下面的代码只运行一次

[TestCase("arg1", "arg2"), Repeat(100)]
public void testing(string arg1, string arg2)
{
    //Arrange

    //Act
    var response = RequestSender.SendGetRequest();

    //Assert
    AssertStuff(arg1, arg2);
}
从网上看,这种行为似乎是故意的

注:

目前无法在TestFixture或任何其他类型的测试套件上使用RepeatAttribute。只能重复单个试验。 由于参数化测试方法表示一个套件,因此当RepeatAttribute出现在此类方法上时,它将被忽略

假设
TestCase
显然被视为参数化测试。循环看起来不可避免,没有一些额外的定制

您可以改为使用测试用例源并向其提供100个重复项的可枚举项:

私有静态只读IEnumerable\u onehundecases=
可枚举范围(0,100)
.Select(=>Tuple.Create(“arg1”、“arg2”);
[TestCaseSource(100个案例的名称))]
公共无效测试(元组THARGS)
{
...
资产(args.Item1、args.Item2);
}
但是对于同样的价格,你也可以稍微改变一下论据

\u一百个案例=
可枚举范围(0,100)
.Select(n=>Tuple.Create(n.ToString(),$“arg{n}”);