我想比较当前的测试方法名称,但是得到一个异常 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?
答案 0 :(得分:0)
您可以将TestContext
属性设置为static。这样,即使不实例化basic.cs类,您也可以调用它。
如果其他类无法访问basic.cs,则可以创建一个静态类,并将TestContext
属性放在此处。
答案 1 :(得分: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
。