Когда я запускаю тесты селена локально, я объявляю один экземпляр драйвера и выполняю каждый тест, не каждый раз инициализируя новый класс драйвера (см. Базовый пример ниже).Однако, когда я выполняю тесты, Visual Studio указывает, что оба теста пройдены, но SauceLabs показывает только результат теста, который был выполнен.Если я смотрю прямую трансляцию в SauceLabs, я вижу, что оба теста выполнялись в одном и том же экземпляре драйвера, и это то, что я хочу, но я хочу указать, что каждый тест проходит как неудачный / неудачный вне экземпляров веб-драйвера.
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Remote;
namespace SauceDemo
{
[TestClass]
public class iosTests
{
private static IWebDriver driver;
public TestContext TestContext { get; set; }
[ClassInitialize]
public static void Setup(TestContext t)
{
#pragma warning disable 618
var caps = new DesiredCapabilities();
caps.SetCapability("deviceName", "iPhone 8 Simulator");
caps.SetCapability("deviceOrientation", "portrait");
caps.SetCapability("platformVersion", "12.0");
caps.SetCapability("platformName", "iOS");
caps.SetCapability("browserName", "Safari");
caps.SetCapability("username", SauceUsername);
caps.SetCapability("accessKey", SauceAccessKey);
caps.SetCapability("name", t.TestName);
driver = new RemoteWebDriver(new Uri("http://ondemand.saucelabs.com:80/wd/hub"),
caps, TimeSpan.FromSeconds(600));
}
[TestMethod]
public void TestMethod1()
{
driver.Navigate().GoToUrl("http://www.google.com");
}
[TestMethod]
public void TestMethod2()
{
driver.Navigate().GoToUrl("http://www.amazon.com");
}
[TestCleanup]
public void TestCleanup()
{
var passed = TestContext.CurrentTestOutcome == UnitTestOutcome.Passed;
((IJavaScriptExecutor)driver).ExecuteScript("sauce:job-result=" + (passed ? "passed" : "failed"));
}
[ClassCleanup]
public static void ClassCleanup()
{
driver?.Quit();
}
}
}