+1. @Platform is the specified annotation or is the annotation used in junit4?
On Wed, Mar 10, 2010 at 11:34 AM, Nathan Beyer <ndbe...@apache.org> wrote: > On Tue, Mar 9, 2010 at 8:50 PM, Charles Lee <littlee1...@gmail.com> wrote: > > That's great. But most old test case is in JUnit 3.8 style. We can follow > > the latest junit when we add the new test cases. What about the old ones? > > We've been using JUnit 4 runners for a long time now. JUnit 4 style > tests could be added at any time and will run perfectly fine with the > other JUnit 3.8 style tests. The runner/launcher would have to be > customized to handle this stuff I'm proposing, but we'd continue to > run both styles of tests. > > -Nathan > > > > > On Wed, Mar 10, 2010 at 9:01 AM, Nathan Beyer <ndbe...@apache.org> > wrote: > > > >> I've been experimenting with JUnit4 extensions in an attempt to find a > >> more simple approach to our basic testing needs. The two major > >> requirements that I see in Harmony's test infrastructure (at least the > >> classlib stuff) are - exclusions and platform-specific tests. (I'm > >> ignoring the bootstrap-classpath stuff for now.) To handle these > >> today, we have exclusion files, which are loaded and used to exclude > >> certain files and then we branch the test folders by platform. Each > >> of these has issues - exclusions are skipping whole files, not just > >> specific failing tests; exclusions aren't well reported on; test files > >> in multiple branches can have duplicate code, etc. > >> > >> One concept I've been working with is using annotations to describe > >> the tests for the purposes of exclusions and for platform definition. > >> The annotations can then be utilized in many ways via JUnit - method > >> rules, request processing filters and others. Here's an example of how > >> the tests might look. > >> > >> class FileTest { > >> @Test > >> @Platform(os="windows") > >> public void testSomethingOnWindows { } > >> > >> @Test > >> @Platform(os="linux", arch="x86_64") > >> public void testSomethingOnLinuxX86_64 {} > >> > >> @Test > >> @Exclude(os="windows",vm="drlvm") > >> public void testSomethingExcludedOnWindowsDRLVM {} > >> } > >> > >> Thoughts? Comments? > >> > > > > > > > > -- > > Yours sincerely, > > Charles Lee > > > -- Yours sincerely, Charles Lee