Как получить текущее имя метода тестирования в любом классе проекта в codedUI? - PullRequest
0 голосов
/ 18 апреля 2019

Я хочу сравнить текущее имя метода тестирования, но получаю исключение, которое TestContext возвращает нуль.

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 в разных классах?

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Насколько я знаю из опыта работы с 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.

0 голосов
/ 23 апреля 2019

Вы можете сделать ваше TestContext свойство статическим .Таким образом, вы сможете вызывать его даже без создания экземпляра класса basic.cs.

Если basic.cs недоступен для других классов, вы можете создать статический класс и поместить туда свойство TestContext.

...