Процент успеха не обрабатывается корректно Surefire - PullRequest
2 голосов
/ 02 марта 2012

У меня есть ожидающий тест, который я ожидаю иногда проваливать, потому что тестовые потоки слишком не синхронизированы. Поэтому я устанавливаю successPercentage и invocationCount для обработки случайного приемлемого сбоя. Если код не работает, ни один из вызовов не пройдет.

Когда я запускаю тест в IntelliJ, все в порядке. Но когда я пытаюсь сделать сборку в Maven, я получаю следующее

Tests run: 1407, Failures: 0, Errors: 1, Skipped: 0

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] There are test failures.

Глядя в restng-results.xml, я вижу это:

<test-method status="SUCCESS_PERCENTAGE_FAILURE" signature="waits()" name="waits" duration-ms="1000" started-at="2012-03-02T13:51:58Z" finished-at="2012-03-02T13:51:59Z">

А в TEST-TestSuite.xml я вижу:

<testcase classname="com.casenet.integration.filesystem.TriggerFileListenerTest" time="1" name="waits">
  <error type="java.lang.AssertionError" message="expected:&lt;EXECUTE&gt; but was:&lt;TIMED_OUT&gt;">java.lang.AssertionError: expected:&lt;EXECUTE&gt; but was:&lt;TIMED_OUT&gt;

Остальные сгенерированные файлы testng, кажется, думают, что все прошло. Но похоже, что этот верный путь сбивает с толку SUCCESS_PERCENTAGE_FAILURE или <error/>, заставляя думать, что что-то пошло не так, когда на самом деле ничего неожиданного не произошло.

Кто-нибудь знает, является ли это известной проблемой или есть решение, доступное?

Ответы [ 2 ]

3 голосов
/ 17 ноября 2014

ОБНОВЛЕНИЕ: исправление для этой проблемы сделало это в выпускной версии 6.8.17.Я соответственно отредактировал свой ответ.


Я знаю, что выкопал здесь старую проблему, но похоже, что у нас есть исправление для этой ситуации, и я могу представить, что люди хотят знать оэтот.Чтобы использовать это исправление, вам нужен SureFire 2.18 и, как минимум, TestNG 6.8.17.

. Для получения полной информации предыстории вы можете обратиться к следующим отчетам об ошибках:

https://jira.codehaus.org/browse/SUREFIRE-654 для первоначального вопроса, как указано в ответе @Raghuram.Краткая версия: SureFire сообщил о ложных отрицаниях.

https://jira.codehaus.org/browse/SUREFIRE-1113 за ошибку, о которой я сообщил в исправлении для SUREFIRE-654.Оказалось, что это не проблема SureFire, а ошибка TestNG, появившаяся в версии 5.14 (в 2010 году!).Короткая версия: SureFire (я думал) сообщил о ложных срабатываниях.

https://github.com/cbeust/testng/issues/566 для фактической ошибки TestNG, которая была исправлена ​​Владиславом Рассохиным и недавно слилась с релизом.Короткая версия: TestNG фактически создал ложные срабатывания, которые затем были проанализированы SureFire как успешные тесты.

1 голос
/ 04 марта 2012

Похоже, что в этом есть открытая верная ошибка , которая также имеет патч и обходной путь.

...