Allow @TestCaseName to be for names that are compatible with CTS/AJUR

Previously, @TestCaseName was disallowed altogether and the default
format was set to {method}[{index}] which was compatible with CTS/AJUR.
The intent was to prevent test authors from setting names which would
break CTS/AJUR features such as retry.

This change relaxes the restrictions to allow the use of @TestCaseName
as long as the generated test names were compatible with CTS/AJUR, i.e.
consisted of what could be a method name followed by an optional index
in brackets.

e.g. {method}_{0} would be allowed as long as the first parameter to
the test contained characters that are allowed in an identifier. An
invalid test name is detected as soon as it is created and will cause
the test run to fail.

Bug: 36541809
Test: Tried using @TestCaseName with valid and invalid patterns
Change-Id: I1dbc99b6b181898b438997f3e6b6d79a60b212b6
2 files changed
tree: 74e54202b20114ddf260e2fe8c3515667eb96c1f
  1. apidocs/
  2. lib/
  3. src/
  4. Android.bp
  5. LICENSE.txt
  6. METADATA
  7. MODULE_LICENSE_APACHE2
  8. OWNERS
  9. pom.xml
  10. README.google
  11. README.md
  12. README.version
  13. RELEASES.md
README.md

JUnitParams

Build Status Coverage Status Maven Central

Parameterised tests that don't suck

Example

@RunWith(JUnitParamsRunner.class)
public class PersonTest {

  @Test
  @Parameters({"17, false", 
               "22, true" })
  public void personIsAdult(int age, boolean valid) throws Exception {
    assertThat(new Person(age).isAdult(), is(valid));
  }
  
}

See more examples

Latest News

About

JUnitParams project adds a new runner to JUnit and provides much easier and readable parametrised tests for JUnit >=4.6.

Main differences to standard JUnit Parametrised runner:

  • more explicit - params are in test method params, not class fields
  • less code - you don't need a constructor to set up parameters
  • you can mix parametrised with non-parametrised methods in one class
  • params can be passed as a CSV string or from a parameters provider class
  • parameters provider class can have as many parameters providing methods as you want, so that you can group different cases
  • you can have a test method that provides parameters (no external classes or statics anymore)
  • you can see actual parameter values in your IDE (in JUnit's Parametrised it's only consecutive numbers of parameters):

Quickstart

JUnitParams is available as Maven artifact:

<dependency>
  <groupId>pl.pragmatists</groupId>
  <artifactId>JUnitParams</artifactId>
  <version>1.0.4</version>
  <scope>test</scope>
</dependency>

If you want to see just one simple test class with all main ways to use JUnitParams see here: https://github.com/Pragmatists/junitparams/tree/master/src/test/java/junitparams/usage

You can also have a look at Wiki:Quickstart

Note: We are currently moving the project from Google Code to Github. Some information may still be accessible only at https://code.google.com/p/junitparams/