我正在创建一个基于c#的自动化测试框架,并具有将测试用例方法和类名链接到需求ID的配置文件。该框架将创建一个TestPlan,它是一个接一个执行的多个测试用例的列表。
由于有数以千计的测试用例(以及更多的测试用例),我想通过反射来调用这些类和方法,但是我担心这些方法会创建支持类的单例实例,这些实例将在方法返回后挂起当通过反射调用下一个测试方法时,不会重复使用。
我的问题是:每次调用会在程序集中使用相同的静态实例吗?或者每次调用都会创建一个新的单例实例?如果没有混合反思,这是一个简单的答案,但有了......我不确定。
示例:我将通过下面的反射调用SomePageTestCases.TestcaseMethod1()。这将创建一个CurrentPage的静态实例,其中包含TestMethod使用的Page对象。在Testcase返回之后,如果我通过反射调用另一个类中的另一个TestMethod会发生什么? CurrentPage.Instance是否仍然存在,是否会被新调用的测试方法使用?或者它是原始的在程序集中是孤立的,并且新的测试方法调用会创建一个新的静态实例CurrentPage?
import java.util.HashMap;
import java.util.List;
import java.util.Map;
System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("credentials_enable_service", false);
prefs.put("profile.password_manager_enabled", false);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", prefs);
options.addArguments("start-maximized");
options.addArguments("disable-infobars");
options.addArguments("--disable-extensions");
WebDriver driver = new ChromeDriver(options);
driver.navigate().to("https://google.com");