所以我设置了这个场景:
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 的“属性”字段所做的更改不会在函数调用中持续存在。为什么?如何使更改持久化?
谢谢。