所以我设置了这个场景:
private void InitializeTestProperties()
{
SetTestPropertiesRecur(mTestRunner.Test, "Show", true);
VerifyPropertiesRecur(mTestRunner.Test, "Show");
}
我期望加载到“mTestRunner”中的所有测试都将存储在 ITest 提供的字典中的属性“Show”设置为“true”。
执行此代码时,ITest 的“属性”字段似乎设置了正确的值:
private void SetTestPropertiesRecur(ITest test, object key, object val)
{
test.Properties[key] = val;
Console.WriteLine(test.TestName.FullName + ": " + test.Properties[key]); // works
if (test.IsSuite)
{
foreach (ITest child in test.Tests)
{
SetTestPropertiesRecur(child, key, val);
}
}
}
但是,当我尝试通过另一个函数进行验证时,“属性”字段不会再次设置。
private void VerifyPropertiesRecur(ITest test, object key)
{
Console.WriteLine(test.TestName.FullName + ": " + test.Properties[key]); // does not print the right value. "test.Properties[key]" has nothing associated with it for all tests.
if (test.IsSuite)
{
foreach (ITest child in test.Tests)
{
VerifyProperties(child, key);
}
}
}
总之,对 ITest 的“属性”字段所做的更改不会在函数调用中持续存在。为什么?如何使更改持久化?
谢谢。