public virtual void TestSetup() { //Start the service if needed AppiumServer.Start(TestEnvironmentParameters); //Set user provided options. MobileTestContext.Set(Constants.AppiumAdditionalOptionsKey, AdditionalCapabilities); Capabilities = new DriverCapabilities(TestEnvironmentParameters); //Merge user provided options to existing default capabilities. Capabilities.MergeCapabilities(MobileTestContext.Get <AdditionalDriverOptions>(Constants.AppiumAdditionalOptionsKey, false)); // Write Runsettings to log file TestLogs.WriteLogSection("Original Test Run Parameters", () => TestLogs.Write(this.TestEnvironmentParameters.ToString())); MobileDriver.Initialize(Capabilities); //Write device configuration to log file TestLogs.WriteLogSection("DUT Configuration", () => TestLogs.Write(MobileDriver.Instance.Capabilities.ToString())); //Capture enviroment parameters for all futures uses. MobileTestContext.Set(Constants.TestEnvironmentKey, TestEnvironmentParameters); TestLogs.AddSection($"Test {TestContext.CurrentContext.Test.Name} Starts"); }
private static AppiumDriver <AppiumWebElement> InitializeDriver(DriverCapabilities capabilities) { AppiumOptions caps = capabilities.GetDriverOptions(); TestEnvironmentParameters TestRunParameters = capabilities.GetEnvironmentContext(); int timeout = Convert.ToInt32(TestRunParameters.RS_DeviceReadyTimeout); Uri serverUri = TestRunParameters.ServerUri; if (TestRunParameters.RS_PlatformName.Equals("Android", StringComparison.OrdinalIgnoreCase)) { return(GetDriver(() => new CustomAndroidDriver(serverUri, caps, TimeSpan.FromSeconds(timeout)))); } if (TestRunParameters.RS_PlatformName.Equals("iOS", StringComparison.OrdinalIgnoreCase)) { return(GetDriver(() => new CustomIOSDriver(serverUri, caps, TimeSpan.FromSeconds(timeout)))); } throw new PlatformNotSupportedException($"[{TestRunParameters.RS_PlatformName}] platform is not supported."); }