Как получить атрибут атрибута текущего теста - PullRequest
0 голосов
/ 19 декабря 2018

Я запускаю тесты селена и создал собственный атрибут Test Fixture, который я применяю к каждому устройству 3 раза, каждый раз с новым драйвером, чтобы мои тесты можно было запускать 3 раза в 3 отдельных браузерах.Это выглядит следующим образом:

[TestFixture(typeof(InternetExplorerDriver))]
[TestFixture(typeof(FirefoxDriver))]
[TestFixture(typeof(ChromeDriver))]
class Edit<TWebDriver> : BaseTest<TWebDriver> where TWebDriver : IWebDriver, new()
{
   [Test]
   public void Test()
   {
      //test code
   }
}

Для моих тестовых приборов я отражаю представления веб-приложений в соотношении 1: 1, поэтому представление Dashboard \ Index в коде веб-приложения будет папкой Dashboard \ Indexдля моих тестов, которые тестируют одно и то же представление, поэтому организация тестов очень строгая.

Я сталкиваюсь с проблемой, что существуют определенные тесты, которые не должны запускаться в определенных браузерах, таких как IE.Большинство тестов необходимо, однако.То, что я пытаюсь сделать, это для каждого тестового прибора

Есть ли какой-либо способ получить значение typeof Тестового прибора во время выполнения теста, чтобы я мог сделать следующее (псевдокод) ...:

[Test]
public void Test()
{
   if(testFixture typeof is InternetExplorerDriver)
   {
      Assert.Ignore("test not to be run in IE");
   }

   // all the test code
}

1 Ответ

0 голосов
/ 19 декабря 2018

Пожалуйста, попробуйте код, измененный ниже.

[TestFixture(typeof(InternetExplorerDriver))]
[TestFixture(typeof(FirefoxDriver))]
[TestFixture(typeof(ChromeDriver))]
class Edit<TWebDriver> : BaseTest<TWebDriver> where TWebDriver : IWebDriver, new()
{
    private TWebDriver webDriver;

    public Edit(TWebDriver webDriver)
    {
        this.webDriver = webDriver;
    }

    [Test]
    public void Test()
    {
        //test code
        if (this.webDriver.GetType() == typeof(InternetExplorerDriver))
        {
            Assert.Ignore("test not to be run in IE");
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...