Nano Hash - криптовалюты, майнинг, программирование

Как запустить первые три метода с @Test в последовательном порядке и следующие три метода с @Test параллельно, используя TestNG?

Существует 6 методов с аннотациями @Test (TestNG). Я хочу запустить первые три метода с @Test в последовательном порядке, а следующие три метода с @Test параллельно, используя TestNG. Как я могу этого добиться?

Ниже приведен фрагмент кода:

@Test
public void m1(){

}

@Test
public void m2(){

}

@Test
public void m3(){

}

@Test
public void m4(){

}

@Test
public void m5(){

}

@Test
public void m6(){

}

Большое спасибо в ожидании!



Ответы:


1

Хорошо, чтобы сохранить порядок, вы можете использовать приоритет:

@Test (priority=1)
public void m1(){

}

@Test (priority=2)
public void m2(){

}

@Test (priority=3)
public void m3(){

}

Обратите внимание, что вам не нужно устанавливать приоритет для остальных методов (4-6), так как вы хотите запускать их параллельно. Вот ваш xml для запуска:

!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="Regression" parallel="methods" thread-count="3">

 <test name="smokeTest">    
    <classes>   
    <class name="regression.sequentialParallelExecution"/>  
    </classes>
 </test>   

</suite>

Вещи, на которые стоит обратить внимание для приведенного выше XML:

  1. Вы выбираете выполнение параллельных методов (вы также можете выбрать тесты или экземпляры)
  2. Количество потоков равно 3, так как вы хотите, чтобы 3 метода выполнялись параллельно.
  3. Первые 3 метода будут запускаться один за другим последовательно (даже в параллельном режиме они сохранят порядок приоритетов).

ПС. если вы хотите, чтобы метод 2 не выполнялся в случае сбоя метода 1, вы можете использовать следующие методы зависимости от:

@Test (priority=1)
public void m1(){

}

@Test (priority=2, dependsOnMethods="m1")
public void m2(){

}

Удачи!

Примечание для Джулиана, редактировавшего мой пост. Прежде всего, большое спасибо, я не знал, что приоритет имеет dependOnMethods. Должен признаться, я немного сбит с толку. Я успешно использую приоритеты и dependOnMethods вместе, получая желаемые результаты. Чтобы дважды проверить свои выводы, я нашел этот пост и зависит от методов. Я буквально скопировал и вставил код, опубликованный OP, и сразу же получил 'ожидаемый результат' без каких-либо изменений. Я был бы рад, если бы мог объяснить это подробнее. Здоровья!

13.03.2017
  • Большое спасибо! Работает как шарм. Дайте мне знать, что вы думаете об использовании dependOnMethods вместо приоритета. Как показано ниже: code @Test(dependsOnMethods={m4}) public void m1() { } @Test(dependsOnMethods={m1}) public void m2() { } @Test(dependsOnMethods={m2}) public void m3() { } code Где m4(), m5() и m6() работают параллельно. 14.03.2017
  • Рад, что чем-то помог! Я думаю, вы можете манипулировать обоими, чтобы удовлетворить ваши потребности. т.е. вы можете заставить все ваши методы падать, как домино (один зависит от следующего); или в некоторых случаях вы можете захотеть, чтобы несколько методов зависели от одного и того же метода. Например, не ищите элемент «Входящие», если ранее пользователь не смог войти в систему (dependOnMethods=login). Лично я использую методы зависит от того, чтобы быстро пропустить будущие тесты, если что-то в ядре выйдет из строя. В некоторых редких случаях я бы основывал более 1 метода на одной и той же цели, чтобы регулировать поток. (т.е. dependOnMethods=dbConnection) 14.03.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..