Как получить полные трассировки стека, если тест JUnit в ant работает неудачно? - PullRequest
1 голос
/ 19 марта 2010

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

Наш сервер сборки использует ant и запускает JUnit, но распечатка по ошибке дает только сообщение об исключении, а не весь «printStackTrace». Есть ли удобный способ получить эту функциональность?

Ответы [ 2 ]

2 голосов
/ 20 марта 2010

Я отправил этот ответ на этот вопрос , прежде чем понял, что это ваш дубликат.

Вот мой тег junit, который производит трассировку исключений.

<junit
  showoutput="yes"
  errorProperty="test.failed"
  failureProperty="test.failed"
  haltOnFailure="${test.halt-on-failure}"
  fork="yes"
  forkmode="${junit.forkmode}"
>
  <classpath>
    <pathelement location="${classes.dir}"/>
    <pathelement location="${classes-under-test.classes.dir}" />
  </classpath>

  <!-- #Formatters for capture and display -->
  <formatter
    type="brief"
    usefile="false"
  />
  <formatter type="brief" />
  <formatter
    type="xml"
    if="test.generate.xml.output"
  />

  <!-- #Test case isolation technique -->
  <test
    name="${testcase}"
    if="testcase"
  />

  <batchtest
    todir="${test.data.dir}"
    unless="testcase"
  >
    <fileset dir="${classes.dir}">
      <include name="**/Test*.class" />
      <exclude name="**/Test*$*.class" />
    </fileset>
  </batchtest>

</junit>

Я думаю, что один вложенный элемент, который сделает это за вас, -

  <formatter
    type="brief"
    usefile="false"
  />
1 голос
/ 07 марта 2016

В JUnit BaseTestRunner есть настройка, ограничивающая это значение:

/**
  * Truncates a String to the maximum length.
  */
public static String truncate(String s) {
    if (fgMaxMessageLength != -1 && s.length() > fgMaxMessageLength)
        s= s.substring(0, fgMaxMessageLength)+"...";
    return s;
}

Вы можете изменить это значение, установив:

BaseTestRunner.setPreference("maxmessage", "-1");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...