PlatformTestCase is the base class for JUnit tests that are platform agnostic. That is using the {@link TestPlatform}interface each test can be run against all supported platform like Hadoop or Cascading local mode.
It is strongly recommended users look at the source of {@link FieldedPipesPlatformTest} or related tests to see howthis class is used.
This test case uses the {@link PlatformRunner} to inject the available platform providers which implement theTestPlatform base class.
By default the PlatformRunner looks for "cascading/platform/platform.properties" file in the classpath, and instantiates the class specified by the "platform.classname" property. If more than one "platform.properties" resource is found, each class is instantiated and the whole suite of tests will be run against each instance.
To limit this, setting the system property "platform.includes" to list the platform names that should be run will cause the PlatformRunner to ignore any unlisted platforms. Thus setting {@code platform.includes=local}, only local mode will run even if the "hadoop" platform was found in the classpath.
To pass custom properties to each test to be used by the {@link cascading.flow.FlowConnector}, create system properties prefixed by "platform.". These properties, minus the "platform." prefix in the property name, will override any defaults.
Subclasses of PlatformTestCase can set " {@code useCluster} to {@code true} on the constructor if the underlyingplatform can boot a cluster for testing. By setting the system property "test.cluster.enabled" to false, this can be deactivated in order to temporarily speed test execution. By default {@code useCluster} is {@code false}, typically user tests don't need to have a cluster running to test their functionality so leaving the default is reasonable.