Maven не показывает, какие тесты не удалось в командной строке - PullRequest
10 голосов
/ 29 марта 2011

Когда я запускаю тест mvn из командной строки, он не показывает, какие тесты не прошли в конце сборки. Разве неудачные тесты не должны быть перечислены в разделе «Тесты по ошибке»? Я использую Windows XP :(, и я попытался в командной строке и console2.

Результаты:

Tests in error:

Tests run: 402, Failures: 0, Errors: 1, Skipped: 2

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

Please refer to C:\code\btlims\java\chippingmanager\chipping-manager-client\target\surefire-reports for the individual test results.
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 minutes 27 seconds
[INFO] Finished at: Tue Mar 29 09:19:58 CDT 2011
[INFO] Final Memory: 24M/43M
[INFO] ------------------------------------------------------------------------

Ответы [ 2 ]

5 голосов
/ 01 апреля 2011

Я столкнулся с этой проблемой при использовании Maven 3.0.3 и версии 2.8 maven-surefire-plugin.В разделе плагинов surefire вашего pom.xml убедитесь, что для параметра printSummary установлено значение true .

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.8</version>
            <configuration>
                <printSummary>true</printSummary>
            </configuration>
        </plugin>

Как только эта опция установлена, вы должны увидеть полный список результатов теста (включая сбои) в выходных данных командной строки.Согласно документации Surefire , тестовые случаи, которые не пройдены, должны по-прежнему перечисляться, если для этого параметра установлено значение false, но это не относится к моим настройкам.

0 голосов
/ 30 марта 2011

Тестовые ошибки - это тест, который завершается из-за исключения.Неудачные тесты - это тесты, в которых утверждение не соответствует / не прошло.

Вы правы - оба события должны быть сообщены в конце.

Я пробовал таким образом

import static org.junit.Assert.fail;
import org.junit.Test;

public class FooBarTest {

    @Test
    public void testError() {
        throw new RuntimeException();
    }

    @Test
    public void testFailure() {
        fail();
    }

}

Это приводит к следующему выводу

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running FooBarTest
Tests run: 2, Failures: 1, Errors: 1, Skipped: 0, Time elapsed: 0.09 sec <<< FAILURE!

Results :

Failed tests:
  testFailure(FooBarTest)

Tests in error:
  testError(FooBarTest)

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

Вы должны следовать совету и взглянуть на target\surefire-reports.Возможно, опубликуйте уязвимый отчет, чтобы дать нам больше информации.

Если возможно, возможно, обновите версию maven.

...