2016-06-01 6 views
3

У меня есть проект Maven со следующими ожидаемыми результатами, когда тесты выполняются (mvn test):Недетерминированного поведение пропускаемых испытаний в параллельном тестировании на Maven Surefire

Tests run: 543, Failures: 0, Errors: 0, Skipped: 8 

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

После добавления следующие настройки к SUREFIRE:

<parallel>methods</parallel> 
<threadCount>5</threadCount> 
<perCoreThreadCount>true</perCoreThreadCount> 
<forkCount>3C</forkCount> 
<reuseFork>true</reuseFork> 

количество Пропускается тесты изменяются. См ниже сводку за 50 казней:

01. Tests run: 543, Failures: 2, Errors: 176, Skipped: 8 

... 34 runs with similar outputs... 

35. Tests run: 543, Failures: 6, Errors: 173, Skipped: 8 
36. **Tests run: 543, Failures: 2, Errors: 182, Skipped: 11** 
37. **Tests run: 543, Failures: 2, Errors: 176, Skipped: 12** 
38. Tests run: 543, Failures: 4, Errors: 177, Skipped: 8 
39. Tests run: 543, Failures: 3, Errors: 175, Skipped: 8 
40. Tests run: 543, Failures: 4, Errors: 174, Skipped: 8 
41. Tests run: 543, Failures: 3, Errors: 172, Skipped: 8 
42. Tests run: 543, Failures: 3, Errors: 172, Skipped: 8 
43. **Tests run: 543, Failures: 2, Errors: 176, Skipped: 12** 
44. Tests run: 543, Failures: 3, Errors: 176, Skipped: 8 

... 5 runs with similar outputs... 

50. Tests run: 543, Failures: 3, Errors: 172, Skipped: 8 

Хотя это случилось в 3/50 случаев, я ожидал увидеть различные номера только в Errors и Failures, но никогда в Skipped.

Какие-либо мысли по этому вопросу? Заранее спасибо.

EDIT:

  • Junit Версия: 4,12
  • Surefire Версия: 2.18.1
+0

Интересно, какая у вас версия JUnit? – Tunaki

+0

@Tunaki Я отредактировал мое сообщение с версиями JUnit и Surefire. Это 4.12 и 2.18.1 соответственно. –

+0

Это похоже на ошибку в surefire. Однако я не могу найти существующую. Не могли бы вы попробовать с разными значениями ''? – Tunaki

ответ

2

ВЫВОД:

Тесты могут быть проигнорированы при выполнении выполнения:

Действительно , в этом конкретном наборе тестов есть тесты с предположениями:

Assume.assumeTrue(InetAddress.getAllByName(host).length > 1); 
Assume.assumeNoException(x); 
Assume.assumeTrue(sslContextFactory == null); 
Assume.assumeNoException(x); 
Assume.assumeTrue(OS.IS_LINUX); 
Assume.assumeTrue(OS.IS_LINUX); 
Assume.assumeTrue(!OS.IS_WINDOWS); 
Assume.assumeTrue(!OS.IS_WINDOWS); 
Assume.assumeThat(Integer.parseInt(nano), Matchers.greaterThan(21)); 
Assume.assumeTrue(false); 
Assume.assumeTrue(true); 
Assume.assumeTrue(false); 

Учитывая обстоятельства, я считаю, что недетерминированность обусловлена ​​предположениями, которые могут быть нарушены при параллельном тестировании.

 Смежные вопросы

  • Нет связанных вопросов^_^