Selenium:无法从其他测试用例访问的变量

时间:2019-06-10 12:21:10

标签: c# visual-studio selenium global-variables

我正在Visual Studio中使用Selenium和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 个答案:

答案 0 :(得分:1)

AB变量只能在声明它们的方法中访问。如果要在最初声明它们的方法之外访问AB,则必须将声明移至类范围。

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

这意味着您可以使用A类中的任何Test方法访问BTestClass变量。

如果只想定义变量并在测试中分配它的值,则应该简单地使用:

private string A;
private string B;

以及您的[Test]方法中

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