harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Charles Lee <littlee1...@gmail.com>
Subject Re: Rethinking testing conventions
Date Thu, 11 Mar 2010 01:38:25 GMT
On Wed, Mar 10, 2010 at 9:01 AM, Nathan Beyer <ndbeyer@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.
We have exclusion file mostly because it has test case fail. It seems some
one put the test case to the exclusion list but forget to put it out. And
after a long time, no one would remember this. In this situation, I'd like
to use @Ignore("reason") annotation, not simply exclude all the test cases
in this file, but ignore the specific test case with reasons.

> 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

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message