Сообщить о нескольких результатах теста в соусах из нескольких - PullRequest
0 голосов
/ 06 февраля 2019

Когда я запускаю тесты селена локально, я объявляю один экземпляр драйвера и выполняю каждый тест, не каждый раз инициализируя новый класс драйвера (см. Базовый пример ниже).Однако, когда я выполняю тесты, 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();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...