Используя NUnit v3 alpha, как я могу заставить свои TestFixtures работать параллельно после того, как заметил [Parallelizable(ParallelScope.Fixtures)]

Используя NUnit v3, я добавил [Parallelizable(ParallelScope.Fixtures)] в 2 отдельных [TestFixtures].

Плюс в том, что они работают, минус в том, что они не работают параллельно, есть ли какой-то синтаксис, который мне не хватает, который нужно отметить в коде? Я посмотрел, и в настоящее время в альфа-версии они поддерживают параллельный запуск TestFixtures, а не тесты в Fixture.

Однако я не вижу, чтобы мои тесты выполнялись параллельно. Моя цель - Sauce Labs.

[TestFixture, Description("IE10, Launch url, verify elements, log in, verify landing page")]

//will run test fixtures in parallel

[Parallelizable(ParallelScope.Fixtures)]

и

//second series of tests to run in parallel
[TestFixture, Description("IE9, Launch url, verify elements, log in, verify landing page")]

//will run test fixtures in parallel

[Parallelizable(ParallelScope.Fixtures)]

Каждый тест выполняется линейно и завершается успешно. Запуск на уровне TestFixture для моей цели работает. Однако я чувствую, что мне не хватает концепции здесь.

любая помощь была бы здорово помочь мне понять, почему это не будет работать.

спасибо Рен


person RenMG    schedule 10.02.2015    source источник
comment
Я не совсем уверен, почему за это проголосовали против ... Я чувствую, что это правильный вопрос, на который на самом деле еще предстоит ответить на любом другом форуме. Это не MBUnit, это NUnit, использующий распараллеливание. Мои тестовые приборы на самом деле не работают параллельно. Из моего исследования вы заметили вышеизложенное, и оно должно работать правильно, но все еще работает линейно. Пожалуйста помогите. Спасибо   -  person RenMG    schedule 11.02.2015


Ответы (2)


Ваши два TestFixture делают одно и то же? Если они есть, попробуйте иметь только один класс TestFixture и иметь два атрибута TestFixture.

[TestFixture("chrome", "WIN8")]
[TestFixture("firefox", "WIN8")]
[Parallelizable(ParallelScope.Fixtures)]
public class RDTestFixture
{
    public RDTestFixture(string browser, string os)
    {   
        DesiredCapabilities capability = new DesiredCapabilities();
        capability.SetCapability("browserName", browser);
        capability.SetCapability("platform", os);
        driver = new RemoteWebDriver(new Uri("http://10.168.88.131:4444/wd/hub/"), capability); //address of the GRID hub
        driver.Manage().Window.Maximize();
     }

Это просто работало непосредственно на сетке селена, в отличие от Sauce Labs, и оба работали параллельно.

person RyanR    schedule 22.02.2015
comment
Эй, Райан, они делают одно и то же в разных браузерах. Один из них - это победа 9 против победы 10. Поскольку я все еще новичок в NUnit, я все еще учусь быть умным. Я попробую атрибуты и посмотрю, что произойдет. Я дам Вам знать. Спасибо, что вернулись ко мне! - person RenMG; 23.02.2015
comment
@RenMG Есть обновления? Удалось ли вам запустить несколько тестов параллельно? - person ; 10.03.2015
comment
Малвин, нет, не видел. Я пытался заставить его работать параллельно с соусами, и кажется, что он работает линейно. Я все еще работаю над этим, но мне нужно переориентироваться на получение соответствующего вывода в Jenkins для NUnit 3.0, что из-за изменений в xml теперь является новой проблемой. Так что, как только я закончу с этим, я вернусь обратно. Я обновлю, как только найду решение. Спасибо - person RenMG; 12.03.2015
comment
@RenMG Если вы говорите о новом формате TestsResult.xml и используете nunit-console для запуска тестов, вы можете указать эту опцию --result=TestResult.xml;format=nunit2, и вы получите результаты тестов в старом формате. Это сработало для меня в TC. - person ; 13.03.2015
comment
Мальвин! Большое спасибо, я только что понял эту часть! теперь я пытаюсь понять, как изменить имя с root на настоящее настоящее имя ... я знаю, что в java вы просто используете имя пакета, вы знаете эту часть? еще раз спасибо за все Малвин! - person RenMG; 13.03.2015
comment
@RenMG Я не совсем уверен, о каком имени вы говорите. Если вы говорили о названии категорий, то вы можете использовать опции включения или исключения. Дополнительную информацию см. в документации: nunit.com/index.php?p=consoleCommandLine&r= 3.0 - person ; 14.03.2015
comment
Малвин, так как я все еще не в себе, я не могу прикрепить скриншот, но СЛУЧАЙНО мои расширенные тестовые приборы работали без использования переменных ОС и браузера. Это немного неуклюже, но я думаю, что это связано с новым тестировщиком? Возможно... Я добавил [Parallelizable(ParallelScope.Fixtures)] под каждым TestFixture. Но он запускал мои тесты параллельно с SauceLabs. - person RenMG; 17.03.2015

Вот как я просто запускаю тесты селена параллельно, используя nunit-console.

  • Обновлен тестовый проект для использования новейшей сборки NUnit.
  • Обновлены устаревшие атрибуты. Полный список можно найти здесь.
  • В каждый класс добавлены следующие строки, которые я хочу запускать параллельно:

    [TestFixture]
    [Parallelizable(ParallelScope.Fixtures)]
    
  • Запустите консоль NUnit, используя эту командную строку:

    nunit-console.exe C:\Path\My.Tests.dll --include=Selenium --result=TestResult.xml;format=nunit2 --workers=4
    
person Andrew    schedule 17.03.2015
comment
Не могли бы вы дать больше информации о том, как обновить сборку и дать правильную ссылку на список атрибутов? Также мне непонятна ваша консольная команда - вы даже не написали консоль NUnit 3.0 как есть. Меня зовут nunit3-console.exe. Не могли бы вы объяснить это? - person Denis Koreyba; 07.12.2015