mirror of https://github.com/apache/poi.git
try to fix the truncated junit xml log files
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1891370 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
91c163ed1d
commit
dd50cb1c67
|
@ -20,16 +20,16 @@ package org.apache.poi.ss.excelant;
|
|||
|
||||
import static org.apache.poi.POITestCase.assertContains;
|
||||
import static org.apache.poi.POITestCase.assertNotContained;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.junit.jupiter.api.Assertions.fail;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.PrintStream;
|
||||
|
||||
import org.apache.poi.POIDataSamples;
|
||||
import org.apache.commons.io.output.NullPrintStream;
|
||||
import org.apache.tools.ant.BuildEvent;
|
||||
import org.apache.tools.ant.BuildException;
|
||||
import org.apache.tools.ant.BuildListener;
|
||||
import org.apache.tools.ant.Project;
|
||||
import org.apache.tools.ant.ProjectHelper;
|
||||
|
@ -44,18 +44,13 @@ import org.junit.jupiter.api.Test;
|
|||
public class TestBuildFile {
|
||||
|
||||
protected Project project;
|
||||
|
||||
private StringBuilder logBuffer;
|
||||
private StringBuilder fullLogBuffer;
|
||||
|
||||
private final StringBuilder logBuffer = new StringBuilder();
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
String filename = TestBuildFile.getDataDir() + "/../poi-excelant/src/test/resources/tests.xml";
|
||||
int logLevel = Project.MSG_DEBUG;
|
||||
|
||||
logBuffer = new StringBuilder();
|
||||
fullLogBuffer = new StringBuilder();
|
||||
logBuffer.setLength(0);
|
||||
project = new Project();
|
||||
project.init();
|
||||
project.setNewProperty("data.dir.name", getDataDir());
|
||||
|
@ -63,7 +58,6 @@ public class TestBuildFile {
|
|||
project.setUserProperty("ant.file", antFile.getAbsolutePath());
|
||||
project.addBuildListener(new AntTestListener(logLevel));
|
||||
ProjectHelper.configureProject(project, antFile);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -94,16 +88,6 @@ public class TestBuildFile {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* run a target, expect for any build exception
|
||||
*
|
||||
* @param target target to run
|
||||
* @param cause information string to reader of report
|
||||
*/
|
||||
void expectBuildException(String target, String cause) {
|
||||
expectSpecificBuildException(target, cause, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Assert that the given substring is in the log messages.
|
||||
*/
|
||||
|
@ -134,21 +118,7 @@ public class TestBuildFile {
|
|||
* @param targetName target to run
|
||||
*/
|
||||
void executeTarget(String targetName) {
|
||||
PrintStream sysOut = System.out;
|
||||
PrintStream sysErr = System.err;
|
||||
try {
|
||||
sysOut.flush();
|
||||
sysErr.flush();
|
||||
System.setOut(new NullPrintStream());
|
||||
System.setErr(new NullPrintStream());
|
||||
logBuffer = new StringBuilder();
|
||||
fullLogBuffer = new StringBuilder();
|
||||
project.executeTarget(targetName);
|
||||
} finally {
|
||||
System.setOut(sysOut);
|
||||
System.setErr(sysErr);
|
||||
}
|
||||
|
||||
project.executeTarget(targetName);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -159,16 +129,11 @@ public class TestBuildFile {
|
|||
* @param msg the message value of the build exception we are waiting
|
||||
* for set to null for any build exception to be valid
|
||||
*/
|
||||
void expectSpecificBuildException(String target, String cause, String msg) {
|
||||
try {
|
||||
executeTarget(target);
|
||||
} catch (org.apache.tools.ant.BuildException ex) {
|
||||
assertTrue(msg == null || ex.getMessage().equals(msg),
|
||||
"Should throw BuildException because '" + cause + "' with message '" + msg + "' (actual message '" + ex.getMessage() + "' instead)"
|
||||
);
|
||||
return;
|
||||
void expectBuildException(String target, String cause, String msg) {
|
||||
BuildException be = assertThrows(BuildException.class, () -> executeTarget(target));
|
||||
if (msg != null) {
|
||||
assertEquals(msg, be.getMessage(), cause);
|
||||
}
|
||||
fail("Should throw BuildException because: " + cause);
|
||||
}
|
||||
|
||||
public static String getDataDir() {
|
||||
|
@ -194,8 +159,7 @@ public class TestBuildFile {
|
|||
* Fired before any targets are started.
|
||||
*/
|
||||
@Override
|
||||
public void buildStarted(BuildEvent event) {
|
||||
}
|
||||
public void buildStarted(BuildEvent event) { }
|
||||
|
||||
/**
|
||||
* Fired after the last target has finished. This event
|
||||
|
@ -204,8 +168,7 @@ public class TestBuildFile {
|
|||
* @see BuildEvent#getException()
|
||||
*/
|
||||
@Override
|
||||
public void buildFinished(BuildEvent event) {
|
||||
}
|
||||
public void buildFinished(BuildEvent event) { }
|
||||
|
||||
/**
|
||||
* Fired when a target is started.
|
||||
|
@ -213,9 +176,7 @@ public class TestBuildFile {
|
|||
* @see BuildEvent#getTarget()
|
||||
*/
|
||||
@Override
|
||||
public void targetStarted(BuildEvent event) {
|
||||
//System.out.println("targetStarted " + event.getTarget().getName());
|
||||
}
|
||||
public void targetStarted(BuildEvent event) { }
|
||||
|
||||
/**
|
||||
* Fired when a target has finished. This event will
|
||||
|
@ -224,9 +185,7 @@ public class TestBuildFile {
|
|||
* @see BuildEvent#getException()
|
||||
*/
|
||||
@Override
|
||||
public void targetFinished(BuildEvent event) {
|
||||
//System.out.println("targetFinished " + event.getTarget().getName());
|
||||
}
|
||||
public void targetFinished(BuildEvent event) { }
|
||||
|
||||
/**
|
||||
* Fired when a task is started.
|
||||
|
@ -234,9 +193,7 @@ public class TestBuildFile {
|
|||
* @see BuildEvent#getTask()
|
||||
*/
|
||||
@Override
|
||||
public void taskStarted(BuildEvent event) {
|
||||
//System.out.println("taskStarted " + event.getTask().getTaskName());
|
||||
}
|
||||
public void taskStarted(BuildEvent event) { }
|
||||
|
||||
/**
|
||||
* Fired when a task has finished. This event will still
|
||||
|
@ -245,9 +202,7 @@ public class TestBuildFile {
|
|||
* @see BuildEvent#getException()
|
||||
*/
|
||||
@Override
|
||||
public void taskFinished(BuildEvent event) {
|
||||
//System.out.println("taskFinished " + event.getTask().getTaskName());
|
||||
}
|
||||
public void taskFinished(BuildEvent event) { }
|
||||
|
||||
/**
|
||||
* Fired whenever a message is logged.
|
||||
|
@ -267,20 +222,18 @@ public class TestBuildFile {
|
|||
event.getPriority() == Project.MSG_ERR) {
|
||||
logBuffer.append(event.getMessage());
|
||||
}
|
||||
fullLogBuffer.append(event.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMissingFilename() {
|
||||
expectSpecificBuildException("test-nofile", "required argument not specified",
|
||||
"fileName attribute must be set!");
|
||||
expectBuildException("test-nofile", "required argument not specified", "fileName attribute must be set!");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFileNotFound() {
|
||||
expectSpecificBuildException("test-filenotfound", "required argument not specified",
|
||||
"Cannot load file invalid.xls. Make sure the path and file permissions are correct.");
|
||||
expectBuildException("test-filenotfound", "required argument not specified",
|
||||
"Cannot load file invalid.xls. Make sure the path and file permissions are correct.");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -303,18 +256,19 @@ public class TestBuildFile {
|
|||
|
||||
assertLogContaining("Using input file: " + TestBuildFile.getDataDir() + "/spreadsheet/excelant.xls");
|
||||
assertLogContaining("Succeeded when evaluating 'MortgageCalculator'!$B$4. " +
|
||||
"It evaluated to 2285.5761494145563 when the value of 2285.576149 with precision of 1.0E-4");
|
||||
"It evaluated to 2285.5761494145563 when the value of 2285.576149 with precision of 1.0E-4");
|
||||
assertLogContaining("Succeeded when evaluating 'MortgageCalculator'!$B$4. " +
|
||||
"It evaluated to 2285.5761494145563 when the value of 2285.576149 with precision of 1.0E-5");
|
||||
"It evaluated to 2285.5761494145563 when the value of 2285.576149 with precision of 1.0E-5");
|
||||
assertLogContaining("Failed to evaluate cell 'MortgageCalculator'!$B$4. " +
|
||||
"It evaluated to 2285.5761494145563 when the value of 2285.576149 with precision of 1.0E-10 was expected.");
|
||||
"It evaluated to 2285.5761494145563 when the value of 2285.576149 with precision of 1.0E-10 was expected.");
|
||||
assertLogContaining("2/3 tests passed");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testPrecisionFail() {
|
||||
expectSpecificBuildException("test-precision-fails", "precision not matched",
|
||||
"\tFailed to evaluate cell 'MortgageCalculator'!$B$4. It evaluated to 2285.5761494145563 when the value of 2285.576149 with precision of 1.0E-10 was expected.");
|
||||
expectBuildException("test-precision-fails", "precision not matched",
|
||||
"\tFailed to evaluate cell 'MortgageCalculator'!$B$4. It evaluated to 2285.5761494145563 " +
|
||||
"when the value of 2285.576149 with precision of 1.0E-10 was expected.");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -326,16 +280,18 @@ public class TestBuildFile {
|
|||
|
||||
@Test
|
||||
void testFailOnError() {
|
||||
expectBuildException("test-failonerror", "fail on error");
|
||||
expectBuildException("test-failonerror", "fail on error", null);
|
||||
assertLogContaining("Using input file: " + TestBuildFile.getDataDir() + "/spreadsheet/excelant.xls");
|
||||
assertLogNotContaining("failed because 1 of 0 evaluations failed to evaluate correctly. Failed to evaluate cell 'MortageCalculatorFunction'!$D$3");
|
||||
assertLogNotContaining("failed because 1 of 0 evaluations failed to evaluate correctly. " +
|
||||
"Failed to evaluate cell 'MortageCalculatorFunction'!$D$3");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFailOnErrorNoDetails() {
|
||||
expectBuildException("test-failonerror-nodetails", "fail on error");
|
||||
expectBuildException("test-failonerror-nodetails", "fail on error", null);
|
||||
assertLogNotContaining("Using input file: " + TestBuildFile.getDataDir() + "/spreadsheet/excelant.xls");
|
||||
assertLogNotContaining("failed because 1 of 0 evaluations failed to evaluate correctly. Failed to evaluate cell 'MortageCalculatorFunction'!$D$3");
|
||||
assertLogNotContaining("failed because 1 of 0 evaluations failed to evaluate correctly. " +
|
||||
"Failed to evaluate cell 'MortageCalculatorFunction'!$D$3");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -369,7 +325,7 @@ public class TestBuildFile {
|
|||
|
||||
@Test
|
||||
void testAddHandlerFails() {
|
||||
expectSpecificBuildException("test-addhandler-fails", "NullPointException", null);
|
||||
expectBuildException("test-addhandler-fails", "NullPointException", null);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue