[hibernate-dev] [OGM] Embedded MongoDB for tests

Hardy Ferentschik hardy at hibernate.org
Tue Jul 9 03:58:03 EDT 2013


I just don't get the point. AFAIU the embedded version is nothing else than a downloaded mongodb,
installed in a given directory and started by the plugin. Where is the difference to a "proper"
mongodb instance? Installing MongoDB is nothing else than getting the distribution and running the
daemon. The only difference I can see is that on a production machine you would run mongodb as 
a service and probably monitor it, but that is imo not relevant in this scenario.

--Hardy


On 9 Jan 2013, at 8:36 AM, Gunnar Morling <gunnar at hibernate.org> wrote:

> 2013/7/8 Sanne Grinovero <sanne at hibernate.org>
> 
>> On 8 July 2013 11:08, Gunnar Morling <gunnar at hibernate.org> wrote:
>>> 2013/7/8 Sanne Grinovero <sanne at hibernate.org>
>>>> 
>>>> Nice!
>>>> now a tricky question: how can I get the tests to run both with
>>>> embedded and external on CI?
>>>> 
>>>> I guess I need two jobs :-(
>>> 
>>> 
>>> Yes, as of know, you'd need two jobs. If really needed, one could
>> probably
>>> make it run against both by configuring several surefire executions.
>>> 
>>> But why would you want to do that? As said, AFAICS there is no functional
>>> difference between both "modes", so I think having CI run one of it
>> should
>>> be good enough.
>> 
>> I'm sure there is no difference for the tests, but we need to make
>> sure both approaches work today and stay working: I want to test the
>> infrastructure code of the testsuite.
>> 
>> Personally I'll likely stick to using an external MongoDB server so I
>> would not be able to detect if someone broke the build on the embedded
>> one.
>> 
> 
> We could add another build step to the existing CI job which only runs the
> tests of the "mongodb" module against an external instance.
> 
> That way we would have the "it just works" experience out of the box via
> the embedded mode, and on CI it would still be ensured that both modes
> work. The CI job would run a bit longer, but I think that's acceptable and
> the set up is easier than with two separate jobs. WDYT?
> 
> 
>> 
>> Sanne
>> 
>>> 
>>> 
>>>> 
>>>> 
>>>> On 8 July 2013 11:01, Gunnar Morling <gunnar at hibernate.org> wrote:
>>>>> Hi,
>>>>> 
>>>>> I've submitted PR #197 [1] for OGM-295.
>>>>> 
>>>>> This makes the "mongodb" module part of the OGM build by default,
>>>>> executing
>>>>> the tests on an "embedded" MongoDB instance. "Embedded" means in this
>>>>> context, that the original distribution *.tar.gz is retrieved from
>>>>> mongodb.org, unpacked and an external mongodb process is started
>> before
>>>>> and
>>>>> stopped after test execution.
>>>>> 
>>>>> To run tests alternatively against an external MongoDB installation,
>> the
>>>>> "useExternalMongoDb" property can be specified like this:
>>>>> 
>>>>>    mvn clean install -DuseExternalMongoDb
>>>>> 
>>>>> This will skip launching/stopping of the embedded instance and expect
>> a
>>>>> running instance on MONGODB_HOSTNAME:MONGODB_PORT as before.
>>>>> 
>>>>> --Gunnar
>>>>> 
>>>>> [1] https://github.com/hibernate/hibernate-ogm/pull/197
>>>>> 
>>>>> 
>>>>> 
>>>>> 2013/7/4 Sanne Grinovero <sanne at hibernate.org>
>>>>>> 
>>>>>> Thanks!
>>>>>> 
>>>>>> On 4 July 2013 11:26, Gunnar Morling <gunnar at hibernate.org> wrote:
>>>>>>> Thanks, Sanne, for creating the issue. I can do that, already
>>>>>>> assigned
>>>>>>> it to
>>>>>>> me.
>>>>>>> 
>>>>>>> --Gunnar
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 2013/7/4 Sanne Grinovero <sanne at hibernate.org>
>>>>>>>> 
>>>>>>>> Created as
>>>>>>>> https://hibernate.atlassian.net/browse/OGM-295
>>>>>>>> 
>>>>>>>> volunteers?
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On 28 June 2013 10:20, Hardy Ferentschik <hardy at hibernate.org>
>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> On 28 Jan 2013, at 11:15 AM, Emmanuel Bernard
>>>>>>>>> <emmanuel at hibernate.org>
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>>> I wonder how you can debug things though and look at the
>> content
>>>>>>>>>> outside
>>>>>>>>>> your tests? I guess you would install a regular mongodb on a
>>>>>>>>>> different
>>>>>>>>>> port.
>>>>>>>>> 
>>>>>>>>> Right, for active development and/or debugging it makes probably
>>>>>>>>> sense
>>>>>>>>> to have a regular
>>>>>>>>> mongodb instance.
>>>>>>>>> 
>>>>>>>>> I see the use case more in simple execution of the build
>> including
>>>>>>>>> unit
>>>>>>>>> tests on any machine.
>>>>>>>>> Also easier to get started for anyone new to the project.
>>>>>>>>> 
>>>>>>>>> --Hardy
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> _______________________________________________
>>>>>>>>> hibernate-dev mailing list
>>>>>>>>> hibernate-dev at lists.jboss.org
>>>>>>>>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>>>>>>> _______________________________________________
>>>>>>>> hibernate-dev mailing list
>>>>>>>> hibernate-dev at lists.jboss.org
>>>>>>>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>>>>>> 
>>>>>>> 
>>>>> 
>>>>> 
>>> 
>>> 
>> 
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev




More information about the hibernate-dev mailing list