[ 
https://issues.apache.org/jira/browse/OAK-3251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14704453#comment-14704453
 ] 

Davide Giannella commented on OAK-3251:
---------------------------------------

If I remember correctly it was agreed to run by default only Segment
as it's faster and it doesn't need any extra tools (Mongo, RDBs) up
and running.

Indeed the normal behaviour of a Mongo IT test is to skip if no mongo
instance is running.

The idea is that most of the functionality should be persistence
agnostic and that before committing you should ensure to give a run on
all the persistence or in case our CI should catch it.

The concept of the fixtures/profiles was initially introduced to
address Travis that was constantly timing out. By splitting in
profiles we managed to have it running. It also comes handy now on
jenkins as it should allow it to run in parallel (assuming enough
executors available).

Giving the right profile/fixture to the tests allows us to have faster
feedbacks. For example, let's say you're working on a RDB
functionality and you want to quickly check for regression you could
give a command like {{mvn clean install
-Dnsfixtures=DOCUMENT_RDB}}. This will give you a faster feedback as
it won't run any Segment or Mongo related stuff. The same for other
profiles.

Before committing, or in case we have CI, you can run {{mvn clean
install -Dnsfixture=}} and waiting your 15, 20 minutes for having a
complete check. Add integrationTesting for increasing coverage and
time ;).

{quote}
do we have documentation about how to do that properly?
{quote}

I should write it down. It takes some time and on my todo list. 

{quote} 
The approach that I adopted from other tests doesn't scale well at all
{quote}

happy to discuss it for alternatives. We can have a chat in case
before hand to speed up things.




> speeding up the build time
> --------------------------
>
>                 Key: OAK-3251
>                 URL: https://issues.apache.org/jira/browse/OAK-3251
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>            Reporter: Davide Giannella
>            Assignee: Davide Giannella
>         Attachments: oak-build-for-unittests-times.log, oak-build-times.log
>
>
> Running the build with a {mvn clean install} takes a considerable amount of 
> time: 15 minutes on my local.
> The top 10 slowest unit test are the following
> {noformat}
> 110.822 sec org.apache.jackrabbit.oak.jcr.query.QueryJcrTest
> 54.012 sec 
> org.apache.jackrabbit.oak.plugins.segment.SegmentDataStoreBlobGCTest
> 36.593 sec 
> org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollectorTest
> 35.234 sec org.apache.jackrabbit.oak.jcr.query.QueryJcrTest
> 25.047 sec org.apache.jackrabbit.oak.plugins.segment.file.FileStoreTest
> 24.787 sec org.apache.jackrabbit.oak.plugins.document.BasicDocumentStoreTest
> 17.477 sec org.apache.jackrabbit.oak.plugins.segment.ExternalBlobTest
> 16.343 sec org.apache.jackrabbit.oak.jcr.query.QueryTest
> 14.519 sec org.apache.jackrabbit.oak.plugins.segment.CompactionAndCleanupTest
> 11.604 sec org.apache.jackrabbit.oak.run.osgi.LuceneSupportTest
> {noformat}
> Is there anything we could do to speed-up these?
> sorted times obtained with 
> https://gist.github.com/davidegiannella/b1d3cbe51d1f70314500



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to