这是因为
我有一个非常简单的nunit的.runsettings文件,看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<TestRunParameters>
<Parameter name="someParameterName" value="someExampleValue" />
<Parameter name="variable1" value="someExampleValue" />
<Parameter name="variable2" value="someExampleValue" />
</TestRunParameters>
</RunSettings>
我希望做的是在参数上循环,而不是按名称访问。
如果我只想要一个值,这是有效的:
var value = TestContext.Parameters["someParameterName"];
感觉这应该能绕过它们,但事实并非如此:
var allParams = TestContext.Parameters;
foreach (var item in allParams) {
//I'll want to get the items name and value here.
}
我得到这个错误:
编译器错误CS1579 foreach语句无法对的变量进行操作类型"type1",因为"type2"不包含的公共定义"标识符">
我缺少什么??
TestContext.Parameters
返回的TestParameters
不是集合。
你能做的最好的事情是:
var allParams = TestContext.Parameters;
foreach (var name in allParams.Names)
{
//I'll want to get the items name and value here.
var value = allParams[name];
Console.WriteLine($"{name} : {value}");
}
输出会像
someParameterName : someExampleValue
variable1 : someExampleValue
variable2 : someExampleValue