0

我想比较当前的测试方法名称,但是得到一个TestContext返回null的异常。

public TestContext TestContext { get; set; }

private void SetTaxCode(Bene beneDetails)
{if (TestContext.TestName.Contains("NegativeTest"))
{SetBenecode(TestDataProvider.TestDataProvider.InValidBeneficiaryTaxCode);
}
else
SetBenecode(beneDetails.BeneficiaryTaxCode);
}

TestContext.TestName 在 basic.cs 中返回正确的测试名称,但我无法将 basic.cs 继承到新类,那么如何在不同的类中使用 TestContext?

4

2 回答 2

0

你可以让你的TestContext财产static。这样,即使不实例化 basic.cs 类,您也可以调用它。

如果其他类无法访问 basic.cs,您可以创建一个静态类并将您的TestContext属性放在那里。

于 2019-04-23T06:56:22.460 回答
0

据我从 CodedUI 的经验中知道,TestContext不能将其设为静态。根据定义,它必须是非静态的。如果要TestContext在不同的类中使用,可以将其作为类似于以下的参数传入:

[CodedUITest]
    public class SomeCodedUITest1
    {    
            public TestContext TestContext
            {
                get
                {
                    return testContextInstance;
                }
                set
                {
                    testContextInstance = value;
                }
            }
            private TestContext testContextInstance;

        [TestCategory("DataFiles"),
                 DataSource ( .... )]
          public void SampleMethod()
            {
                MyClass = new MyClass(TestContext);
            }
    }

然后在MyClass类里面只使用构造函数

public MyClass (TestContext testContext)
  {
  }

然后你就可以使用TestContext里面的数据了MyClass。例如,testContext.DataConnection.Database

于 2019-05-15T18:44:24.680 回答