Selenium: переменные, недоступные из других тестов - PullRequest
0 голосов
/ 10 июня 2019

Я использую Selenium в Visual Studio с NUnit для сортировки моих тестовых случаев.

Я не могу получить доступ к двум строковым переменным, поскольку они принадлежат двум разным тестовым случаям.

Упрощенная версия того, как выглядит мой код

namespace AutomatedTestCases
{
    [TestFixture]
    public class TestClass : BaseTest
    {
       private String A;
       private String B;
       [Test]
       public void TestCase1()
       {
          String A = "ABC123";
          Console.WriteLine(A);
       }

       [Test]
       public void TestCase2()
       {
          String B = "ABC123";
          Console.WriteLine(B);
       }
       [Test]       
       public void TestCase3()
       {
          Console.WriteLine(A);
          Console.WriteLine(B);
       }
       [Test]
       public void OrderOfTestCases()
       {
       TestCase1();
       TestCase2();
       TestCase3();
       }
   }
}

Когда я печатаю текст из тестового примера, печатается ABC123.Но когда я запускаю их по порядку (OrderOfTestCases ()), он ничего не печатает или не принимает значение.

Так что, похоже, значение "ABC123" не сохраняется в переменной между тестовыми случаями.

1 Ответ

1 голос
/ 10 июня 2019
Переменные

A и B доступны только в тех методах, в которых они объявлены. Если вы хотите получить доступ к A или B вне методов, в которых они были первоначально объявлены, вы должны переместить объявление в область видимости класса.

    [TestFixture]
    public class TestClass : BaseTest
    {
        private string A = "ABC123";
        private string B = "ABC123";
    }

Это означает, что вы можете получить доступ к A или B переменным в любом методе Test класса TestClass.

Если вы просто хотите определить переменную и назначить ее значение в тесте, вам следует просто использовать:

private string A;
private string B;

и в вашем [Test] методе:

[Test]
public void TestCase1()
{
   A = "ABC123";
}
...