This is an automated email from the ASF dual-hosted git repository. ddekany pushed a commit to branch FREEMARKER-35 in repository https://gitbox.apache.org/repos/asf/freemarker.git
commit beee05959b48982a9151cbe751dfca8f2ebfe527 Author: ddekany <[email protected]> AuthorDate: Thu Dec 16 14:19:59 2021 +0100 Print JUnit test failure details to console when building on Travis CI --- build.xml | 26 +++++++++++++++-- .../freemarker/ext/beans/ErrorMessagesTest.java | 1 - src/test/resources/logback-test-ci.xml | 34 ++++++++++++++++++++++ 3 files changed, 57 insertions(+), 4 deletions(-) diff --git a/build.xml b/build.xml index 5f48e22..3250361 100644 --- a/build.xml +++ b/build.xml @@ -388,15 +388,24 @@ <!-- Testing --> <!-- ================================================================= --> - <target name="test" depends="compileTest" description="Run test cases"> + <target name="test" depends="_test, _testFailedCheck" /> + + <target name="_test" depends="compileTest, _setTestPropertiesIfCiMode"> <mkdir dir="build/junit-reports" /> <ivy:cachepath conf="run.test" pathid="ivy.dep.run.test" /> - <junit haltonfailure="on" logfailedtests="true" fork="true" forkmode="once"> + <junit failureproperty="testFailed" logfailedtests="true" fork="true" forkmode="once"> <classpath> <pathelement path="build/test-classes" /> <pathelement path="build/classes" /> <path refid="ivy.dep.run.test" /> </classpath> + <syspropertyset> + <propertyref prefix="testSystemProperties."/> + <mapper type="glob" from="testSystemProperties.*" to="*"/> + </syspropertyset> + <!-- Print failure details on Travis CI to the console, as we can't access the report files there: --> + <formatter type="brief" usefile="false" if="ciMode" /> + <!-- When not on Travis CI, these contain the detailed log: --> <formatter type="plain" /> <formatter type="xml" /> <batchtest todir="build/junit-reports"> @@ -404,11 +413,21 @@ <include name="**/*Test.java" /> <include name="**/*TestSuite.java" /> <exclude name="**/Abstract*.java" /> + <exclude name="**/AdhocTest*.java" /> </fileset> </batchtest> </junit> </target> - + + <target name="_setTestPropertiesIfCiMode" if="ciMode"> + <property name="testSystemProperties.logback.configurationFile" value="logback-test-ci.xml" /> + <property name="testSystemProperties.logback.statusListenerClass" value="ch.qos.logback.core.status.OnConsoleStatusListener" /> + </target> + + <target name="_testFailedCheck" if="testFailed"> + <fail message="Some tests have failed! Check build/junit-reports, or previous Ant log messages." /> + </target> + <!-- ================================================================= --> <!-- Generate docs --> <!-- ================================================================= --> @@ -929,6 +948,7 @@ Proceed? </input> <target name="ci-setup"> <ivy:settings file="ivysettings-ci.xml" /> + <property name="ciMode" value="true" /> </target> <target name="ci" diff --git a/src/test/java/freemarker/ext/beans/ErrorMessagesTest.java b/src/test/java/freemarker/ext/beans/ErrorMessagesTest.java index 9849b8e..5ae80b7 100644 --- a/src/test/java/freemarker/ext/beans/ErrorMessagesTest.java +++ b/src/test/java/freemarker/ext/beans/ErrorMessagesTest.java @@ -45,7 +45,6 @@ public class ErrorMessagesTest { try { thm.get("foo"); } catch (TemplateModelException e) { - e.printStackTrace(); final String msg = e.getMessage(); assertThat(msg, containsString("\"foo\"")); assertThat(msg, containsString("existing sub-variable")); diff --git a/src/test/resources/logback-test-ci.xml b/src/test/resources/logback-test-ci.xml new file mode 100644 index 0000000..140479d --- /dev/null +++ b/src/test/resources/logback-test-ci.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<configuration> + <!-- + In Continuous Integration mode the Ant junit task is configured to print the failed test details to the console, + because we can't get the JUnit report on Travis CI, but see what was printed to the console. But then, for some + reason, the stdout of the tests will be echoed on the console as well. Thus we have to prevent it being flooded + by logs messages. + --> + + <appender name="NOP" class="ch.qos.logback.core.helpers.NOPAppender" /> + + <root level="OFF"> + <appender-ref ref="NOP" /> + </root> + +</configuration> \ No newline at end of file
