[
https://issues.apache.org/jira/browse/OAK-3862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15093860#comment-15093860
]
Francesco Mari commented on OAK-3862:
-------------------------------------
bq. Package all test in oak-core and select those integration test to also run
in oak-segment with just SegmentFixture. Later we can do same when oak-document
is carved out. Would that work?
I thought about this suggestion, but I find this solution sub-optimal. Suppose
you have an {{oak-it}} module containing every integration test in Oak: this
module needs only to know which implementations to run the tests against. On
the other hand, suppose we apply your solution: {{oak-segment}} would need to
have a knowledge about every integration test in {{oak-core}}, with the
potential of missing some tests if we don't keep this knowledge up to date.
Moreover, I fear that your solution would make {{oak-segment}} a second-class
citizen: since {{oak-core}} comes before {{oak-segment}} in the Maven build
plan, no integration test for {{oak-segment}} will be ever run if some
integration test fails in {{oak-core}}. With a separate {{oak-it}} module,
instead, integration tests will run simultaneously for every known backend,
giving a comprehensive report about the status of every known implementation.
> Move integration tests in a different Maven module
> --------------------------------------------------
>
> Key: OAK-3862
> URL: https://issues.apache.org/jira/browse/OAK-3862
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Reporter: Francesco Mari
> Assignee: Francesco Mari
> Fix For: 1.4
>
>
> While moving the Segment Store and related packages into its own bundle, I
> figured out that integration tests contained in {{oak-core}} contribute to a
> cyclic dependency between the (new) {{oak-segment}} bundle and {{oak-core}}.
> The dependency is due to the usage of {{NodeStoreFixture}} to instantiate
> different implementations of {{NodeStore}} in a semi-transparent way.
> Tests depending on {{NodeStoreFixture}} are most likely integration tests. A
> clean solution to this problem would be to move those integration tests into
> a new Maven module, referencing the API and implementation modules as needed.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)