Not that I want to make the test framework any more complex than it is, but since this functionality is already there I will take a moment to explain it.
Every annotation marked with @TestGroup has a "name" (lowercased name of the class by default) and a system property that controls its enabled/ disabled state. By default the system property becomes the name of the annotation prefixed with "tests.", so for: @TestGroup(enabled = false) public @interface AwaitsFix { /** Point to JIRA entry. */ public String bugUrl(); } the name is 'awaitsfix' and the system property would be "tests.awaitsfix". Up until now you could enable or disable tests annotated with each test group by setting the corresponding property to on or off. A test was executed if all of its test groups were enabled or assumption-ignored if any of them was disabled. >From now on (trunk) you can also pick all tests annotated with a boolean combination of test groups: ant test-core -Dtests.filter="@foo and @bar" ant test-core -Dtests.filter="@foo and not @bar" ant test-core -Dtests.filter="@foo or @bar" ant test-core -Dtests.filter="@foo or @bar" Such a filter ignores system properties for each group; if you still want to take the "default" state of each test into account (resulting from resolving system properties) you can use the 'default' keyword. For example: ant test-core -Dtests.filter="default and not(@nightly or @slow)" will run all the tests that would run normally (taking into account your own exclusion rules, for example tests.slow=false) but also exclude any @Nightly or @Slow tests. You get the idea :) Dawid --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org