PS

Not directly relevant to jena-core but I'm testing out a Junit4 runner that parsers manifest files.

A lot of SPARQL testing is driven by RDF-based manifests, including the material developed by the SPARQL working groups.

https://github.com/afs/mantis/tree/master/dboe-quack/src/test/java/org/seaborne/dboe/sparql

This was on reason there is so much Junit3 but after a previous discussion here with Claude, we looked at Junit4 based file parsing.

        Andy

On 20/04/15 17:40, Andy Seaborne wrote:
The nice thing is that there are two (semi-)independent strands:

1/ Direct Junit3 -> Junit4 update
2/ Improving the quality of tests with contracts.

that means (2) can proceed at it's own natural pace.

     Andy


On 20/04/15 07:28, Claude Warren wrote:
Here is the svn link to the earlier work.
https://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/

note that all code is under the src/test branch.
note also that the old package names are in use.  I think there is a move
to change the package names to org.apache.jena....

Claude

On Mon, Apr 20, 2015 at 6:31 AM, Bruno P. Kinoshita <[email protected]>
wrote:

Hello Claude

Category testing requires that you know all the category tests when you
write your tests.

The contract test finds all the implemented tests.  So if we
implement a
new test it is automatically picked up.  Also the contract test maven
plugin will show us all the interfaces that are missing tests --
actually
the tooling will do that without the maven plugin.

Thanks for clarifying. That makes sense, and also makes me want to
experiment writing some contract tests. I'll spend some hours during the
next days playing with the code in that GitHub repository :)

I did some work awhile back to convert the tests to junit 4 (Under the
new-test branch)

I couldn't find the branch under Jena's Git repo at ASF [1]. Maybe it
was
deleted?

  The problem was the number of suites that are not supported by junit
4.   Many of the suites are written so that they add the tests at
runtime
so you don't really know all the tests at compile time (as the
annotations
require).  I found (or wrote -- I don't recall which) an annotated suite
that would allow you to add tests are runtime -- I'll have to find that
again.

Oh, I also noticed it. This one test suite was the first one that I
found
[2] with this pattern. It would be great to have a procedure to
follow when
migrating these suites.

The secondary problem is that the number of tests is significant and it
is hard to keep up with newly added tests and changes as development
proceeds.

I can try helping with this. Maybe one or two long development cycles
just
to work on this issue. And maybe discuss in the mailing list on a coding
style for new tests - and perhaps update the Wiki with some guideline.

I've created a branch [3] to work on JENA-380. Feel free to commit to
this
branch too or to another branch. I'll try to keep it up to date to
master
and create one (or few) commits when merging to the master branch.

Thanks!
Bruno

[1] https://git1-us-west.apache.org/repos/asf?p=jena.git;a=summary

[2]
https://github.com/apache/jena/blob/281e655a0cc696b76006a7bda0582662eefd98de/jena-iri/src/test/java/org/apache/jena/iri/TestExample.java#L226


[3]
https://git1-us-west.apache.org/repos/asf?p=jena.git;a=shortlog;h=refs/heads/JENA-380





   ------------------------------
  *From:* Claude Warren <[email protected]>
*To:* Bruno P. Kinoshita <[email protected]>
*Sent:* Sunday, April 19, 2015 6:05 AM

*Subject:* Re: Work on JENA-380

Category testing requires that you know all the category tests when you
write your tests.

The contract test finds all the implemented tests.  So if we implement a
new test it is automatically picked up.  Also the contract test maven
plugin will show us all the interfaces that are missing tests --
actually
the tooling will do that without the maven plugin.

I did some work awhile back to convert the tests to junit 4 (Under the
new-test branch) The problem was the number of suites that are not
supported by junit 4.   Many of the suites are written so that they
add the
tests at runtime so you don't really know all the tests at compile
time (as
the annotations require).  I found (or wrote -- I don't recall which) an
annotated suite that would allow you to add tests are runtime -- I'll
have
to find that again.

The secondary problem is that the number of tests is significant and
it is
hard to keep up with newly added tests and changes as development
proceeds.

Claude









On Sat, Apr 18, 2015 at 1:10 PM, Bruno P. Kinoshita <[email protected]>
wrote:

Hi Claude!

I would like to work with you on this.

That's great! Shortly after writing I started to toy around with the
existing tests. Looks like most of the code using JUnit3 that I found
also
have test suites. So probably simply finding "extends TestCase" and
replacing by some annotations won't be enough.

How do you think we can divide the tasks? I don't mind repetitive/manual
tasks at all :-)

I also think that we should develop contract tests for our SPI
interfaces (like graph).

That's new to me, and looks interesting.

But just to see if I understand it correctly, couldn't we achieve the
same
with categories [1]? This way, tests for the interface "I" (from the
example in the GitHub repo) could be orthogonally tested with a category
CategoryI. And finally annotate a test suite class with
@RunWith(Categories.class) @IncludeCategory(CategoryI.class)
@SuiteClasses(...).

What would be the advantage of the contract tests over using categories?

Cheers
Bruno

[1] https://github.com/junit-team/junit/wiki/Categories

   ------------------------------
  *From:* Claude Warren <[email protected]>
*To:* [email protected]; Bruno P. Kinoshita <[email protected]>
*Sent:* Saturday, April 18, 2015 11:14 PM
*Subject:* Re: Work on JENA-380

I was working on this awhile back and got pulled away.

I would like to work with you on this.  I also think that we should
develop contract tests for our SPI interfaces (like graph).

https://github.com/Claudenw/junit-contracts




On Sat, Apr 18, 2015 at 9:55 AM, Bruno P. Kinoshita <[email protected]>
wrote:

Hi all,

I'm planning to work on JENA-380 [1], migrating tests from JUnit 3 to
JUnit 4, and would like to know if anyone else is working on it.
The issue includes some new structure for tests too, but I intend to
simply remove the old JUnit 3 syntax (e.g. extends TestCase) by
annotations. Later we can work on the remaining of the tasks or close
the
issue and open separate issues for each specific task.
Any thoughts?
Bruno
[1] https://issues.apache.org/jira/browse/JENA-380





--
I like: Like Like - The likeliest place on the web
<http://like-like.xenei.com/>
LinkedIn: http://www.linkedin.com/in/claudewarren





--
I like: Like Like - The likeliest place on the web
<http://like-like.xenei.com/>
LinkedIn: http://www.linkedin.com/in/claudewarren







Reply via email to