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

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