Enable running more integration tests from Gradle.

This is particularly relevant for developers who import the Gradle project into their IDE and run tests using the Gradle test runner. Those developers were previously unable to debug integration tests.

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1886962 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Marius Volkhart 2021-02-26 22:14:17 +00:00
parent 0fbf8f2e58
commit 451684aa91
2 changed files with 14 additions and 3 deletions

View File

@ -421,7 +421,6 @@ project('integrationtest') {
test {
// exclude these from the normal test-run
exclude '**/TestAllFiles.class'
exclude '**/*FileHandler.class'
}

View File

@ -70,7 +70,8 @@ import org.opentest4j.AssertionFailedError;
// also need to set JVM parameter: -Djunit.jupiter.execution.parallel.enabled=true
@Execution(ExecutionMode.CONCURRENT)
public class TestAllFiles {
public static final File ROOT_DIR = new File("test-data");
private static final String DEFAULT_TEST_DATA_PATH = "test-data";
public static final File ROOT_DIR = new File(System.getProperty("POI.testdata.path", DEFAULT_TEST_DATA_PATH));
public static final String[] SCAN_EXCLUDES = {
"**/.svn/**",
@ -183,7 +184,18 @@ public class TestAllFiles {
}
private static String pathReplace(String msg) {
if (msg == null) return null;
// Windows path replacement
return msg == null ? null : msg.replace('\\', '/');
msg = msg.replace('\\', '/');
// Adjust file paths to remove unwanted file path info.
int filePathIndex = msg.indexOf(ROOT_DIR.toString());
if (filePathIndex > 0) {
int testDataDirectoryIndex = msg.indexOf(DEFAULT_TEST_DATA_PATH);
msg = msg.substring(0, filePathIndex) + msg.substring(testDataDirectoryIndex);
}
return msg;
}
}