Annotation Type RunTestOn
-
@Documented @Target({METHOD,TYPE}) @Retention(RUNTIME) public @interface RunTestOn
You have a test which should be run only on Linux or another operationg system? Then you can use this annotation to run a single test (put the annotation in front of the test method) or all tests in this class (put the annotation in front of the class) on the given platform.- Since:
- 1.0 (27.01.2010)
- Author:
- oliver
- See Also:
SkipTestOn
-
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description int[]
day
With the day attribute you can limit the run of your tests on special days.boolean
hide
Normally a test would be listed as "ignore" if it is not run.java.lang.String[]
host
With this attribute you can express that the test should be run on the given host(s).java.lang.String[]
javaVendor
You want the test to be run on a special vendor VM?java.lang.String[]
javaVersion
You want the test to be run on a special version of the VM, e.g. on version "1.6.0_17" because you know that on this version there is a bug that caused your test not to work?java.lang.String[]
osArch
You want the test only to be run on the Intel architecture?java.lang.String[]
osName
Should a test be run only on a single platform e.g. on Linux?java.lang.String[]
osVersion
You want the test only to be run on a special version of the operating system?java.lang.String[]
property
You have some tests that runs only if you are online?java.lang.String[]
time
With the time attribute you can limit the run of your tests on special hours.java.lang.String[]
user
Does the test should be run only for user "Bob" because he is the only one who has access to a secret webservice?java.lang.String[]
value
Here you can define the name of the operating system or version of the JDK for which a test should be executed.
-
-
-
Element Detail
-
osName
java.lang.String[] osName
Should a test be run only on a single platform e.g. on Linux? Use "Linux" and the test will run only on the Linux platform. Instead of "Linux" you can use any other operation system. The format must be the same as returned by the system property "os.name". Valid values are:- "Linux"
- "Mac OS X" (for Mac),
- "Windows XP"
- and others (see http://lopica.sourceforge.net/os.html).
Multiple values like
{ "Linux", "Mac OS X" }
are allowed. If no operation system is given you will get an IllegalArgumentException.The format of this attribute must be the same as returned by system property "os.name".
Since 1.2 wildcards (*, ?) are supported.
- Returns:
- the string[]
- Default:
- {""}
-
-
-
osArch
java.lang.String[] osArch
You want the test only to be run on the Intel architecture? Then you can use this attribute to limit it on this platform. You can define a single platform like"x86_64"
for an Intel-Mac with 64 bit or multiple platform like{ "x86_32", "x86_64" }
for Intel Mac with 42 or 64 bit.The format of this attribute must be the same as returned by the ystem property "os.arch".
Since 1.2 wildcards (*, ?) are supported.
- Returns:
- the string[]
- Default:
- {""}
-
-
-
osVersion
java.lang.String[] osVersion
You want the test only to be run on a special version of the operating system? Use this attribute to limit it. In contradiction to the other attributes the real version must start with the given version. I.e. if you define "10.6" as version this would match only real version "10.6.1" or "10.6.2".You can't define a range of versions. But several versions are allowed. So if you want to run the tests in version 10.6.1 till 10.6.3 define { "10.6.1", "10.6.2", "10.6.3" } as values.
Since 1.2 wildcards (*, ?) are supported.
- Returns:
- the string[]
- Default:
- {""}
-
-
-
javaVersion
java.lang.String[] javaVersion
You want the test to be run on a special version of the VM, e.g. on version "1.6.0_17" because you know that on this version there is a bug that caused your test not to work? Then use this attribute.You can't define a range of skipped versions. But regex (regular expressions) are allowed. And you can define more than one version (or regex).
The format of this attribute must be the same as returned by the system property "java.version".
Since 1.2 wildcards (*, ?) are supported.
- Returns:
- the string[]
- Default:
- {""}
-
-
-
javaVendor
java.lang.String[] javaVendor
You want the test to be run on a special vendor VM? Use this attribute here. The format of this attribute must be the same as returned by the system property "java.vendor". Valid values are:- "Apple Inc."
- and others
Since 1.2 wildcards (*, ?) are supported.
- Returns:
- the string[]
- Default:
- {""}
-
-
-
user
java.lang.String[] user
Does the test should be run only for user "Bob" because he is the only one who has access to a secret webservice? Useuser="bob"
to run this test only for his account.Yep, the new boss of the team, Bill, is also allow to call this webservice. Ok, use
user={"bob", "bill"}
skip the test for both accounts.Since 1.2 wildcards (*, ?) are supported.
- Returns:
- the string[]
- Since:
- 1.1
- Default:
- {""}
-
-
-
property
java.lang.String[] property
You have some tests that runs only if you are online? Define a property (e.g.property="online"
). If this property is set (and its value is not "false") the test will be executed if you start the JavaVM withjava -Donline ...
orjava -Donline=true ...
.You can control more than property with this attribute. Then all properties must be "true" to run the test.
Wildcards (*, ?) are not yet supported for system properties.
- Returns:
- the string[]
- Default:
- {""}
-
-
-
time
java.lang.String[] time
With the time attribute you can limit the run of your tests on special hours. E.g. you can define some "happy hours" for tests which needs a little bit longer.The pattern for the definition of the time range is "HH:mm-HH:mm", e.g. "0:00-24:00" for the whole day. You can also define several time ranges e.g. { "6:00-8:00", "18:00-20:00" }
- Returns:
- e.g. "18:00-6:00" for the whole night for 18 o'clock and 6 o'clock.
- Since:
- 1.6
- Default:
- {""}
-
-
-
hide
boolean hide
Normally a test would be listed as "ignore" if it is not run. If you do not want this set this flag to true. This can be useful if you must pass some quality gates which do not allow ignored tests (e.g. if you use Sonar that can be a quality gate).NOTE: Because of limitations of JUnit and the RemoteTestRunner of Eclipse this flag not supported at class level, only on method level. If you'll try to set in on class level you will get an
UnsupportedOperationException
at runtime.- Returns:
- true, if successful
- Since:
- 1.5
- Default:
- false
-
-
-
value
java.lang.String[] value
Here you can define the name of the operating system or version of the JDK for which a test should be executed. But it is better to use the attributes "osName" or "javaVersion" here because otherwise PatternTesting tries to guess what you mean.Since 1.2 wildcards (*, ?) are supported.
- Returns:
- the string[]
- See Also:
osName()
,javaVersion()
- Default:
- {""}
-
-