C# Selenium:无法从其他测试用例访问变量
我正在VisualStudio中使用Selenium和NUnit对测试用例进行排序 我无法访问两个字符串变量,因为它们属于两个不同的测试用例 我的代码的简化版本C# Selenium:无法从其他测试用例访问变量,c#,visual-studio,selenium,global-variables,C#,Visual Studio,Selenium,Global Variables,我正在VisualStudio中使用Selenium和NUnit对测试用例进行排序 我无法访问两个字符串变量,因为它们属于两个不同的测试用例 我的代码的简化版本 namespace AutomatedTestCases { [TestFixture] public class TestClass : BaseTest { private String A; private String B; [Test] publi
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())运行它们时,它不会打印任何内容或null
因此,值“ABC123”似乎没有存储在测试用例之间的变量中。
A
和B
变量只能在声明它们的方法中访问。如果要在最初声明它们的方法之外访问A
或B
,则必须在类范围内移动声明
[TestFixture]
public class TestClass : BaseTest
{
private string A = "ABC123";
private string B = "ABC123";
}
这意味着您可以在来自TestClass
class的任何测试方法中访问A
或B
变量
如果您只想在测试中定义变量并分配其值,您只需使用:
private string A;
private string B;
在您的[Test]
方法中:
[Test]
public void TestCase1()
{
A = "ABC123";
}
是否可以在那里声明它们而不给它们一个值?像这样
私有字符串A代码>由于特定的值不是静态的,所以我不能预先这样给它们一个值。我需要运行该类的内部测试用例,以从我正在测试的网页的某些元素中检索数据。错误消息已消失,但该值似乎没有永久存储。请阅读更新的问题。删除A
和B
之前的String
,然后重试。仅允许A
=“ABC123”;