For DistributedTest example, see CreateAndLocalDestroyInTXRegressionTestJUnitParams can be very useful in any test type (UnitTest, IntegrationTest, DistributedTest).
1) Add these importsthese junitparams
imports:
Code Block |
---|
import junitparams.JUnitParamsRunner; import junitparams.Parameters; import junitparams.naming.TestCaseName; |
2) Add {{@RunWith(JUnitParamsRunner.class)}}
to your test class:
Code Block |
---|
@Category(DistributedTest.class)
@RunWith(JUnitParamsRunner.class)
@SuppressWarnings("serial")
public class CreateAndLocalDestroyInTXRegressionTest implements Serializable { |
3) Use both @Parameters
and @TestCaseName
on test method(s) using parameters:
Code Block |
---|
@Test
@Parameters({"true", "false"})
@TestCaseName("{method}({params})")
public void userFilesAreBackedUp(boolean useRelativePath) throws Exception { |
This results in nicer test names in the results:
Code Block |
---|
FileSystemBackupWriterTest (org.apache.geode.internal.cache.backup)
userFilesAreBackedUp(true)
userFilesAreBackedUp(false) |
You can also use Strings that represent enums
:
Code Block |
---|
private enum LocalOperation {
LOCAL_DESTROY((region) -> region.localDestroy(KEY),
TXStateStub_LOCAL_DESTROY_NOT_ALLOWED_IN_TRANSACTION),
LOCAL_INVALIDATE((region) -> region.localInvalidate(KEY),
TXStateStub_LOCAL_INVALIDATE_NOT_ALLOWED_IN_TRANSACTION);
...
}
@Test
@Parameters({"LOCAL_DESTROY", "LOCAL_INVALIDATE"})
@TestCaseName("{method}({params})")
public void createAndLocalOpShouldCreateEventWithNewValue(final LocalOperation operation) { |
And the results of running with enums
look like this:
Code Block |
---|
CreateAndLocalDestroyInTXRegressionTest
createAndLocalOpShouldCreateEventWithNewValue
CreateAndLocalDestroyInTXRegressionTest.createAndLocalOpShouldCreateEventWithNewValue(LOCAL_DESTROY)
CreateAndLocalDestroyInTXRegressionTest.createAndLocalOpShouldCreateEventWithNewValue(LOCAL_INVALIDATE) |
Some good examples
- ClientDeserializationCopyOnReadRegressionTest
- CreateAndLocalDestroyInTXRegressionTest
- FileSystemBackupWriterTest