Re: is it possible to run oracle server as non-root, non-system process?

From: Robert Klemme <shortcutter_at_googlemail.com>
Date: Wed, 24 Sep 2014 18:55:12 +0200
Message-ID: <c8gbbhFu54tU1_at_mid.individual.net>


On 24.09.2014 09:59, ted y wrote:
> Thanks Robert. your comments are very right. I'm glad you understood
> my approach.

:-)

> yes, the start up time would be high. but with a bit of careful
> coding in my wrapper class for my custom base class that uses this
> oracle setup, I can let all the junit cases share the same oracle
> instance, and not starting a new one every time. that way the cost is
> tolerable, I'm not terribly concerned with the speed to run my
> junit.

But that way you have created dependencies between your junit test cases via the state in the database.

> compared to the headache to cope with the difference between oracle
> sql flavor / features and that of hsqldb/sqlite3, the time cost is
> much less of a concern.

Why don't you use JPA to handle SQL flavors?

> if I could setup oracle for my test, I don't
> need to worry about our QA "runway" oracle boxes going down or
> network cut off. hsqldb offers a "Oracle flavor/mode" but it's far
> from even a satisfactory emulation, it lacks many oracle functions.

Yeah, you need the real thing for testing for sure.

> granted , testing db-related java code is a pain, I tried to search
> around for an established, systematic, sound approach, but haven't
> seen any on the web or through my work.

I think testing code that needs a database is always a pain - especially for large schemas. Nowadays I tend to think that this is not a unit test topic. This is rather an integration test.

Another idea would be to use some kind of virtualization solution and create a snapshot of the running database with a particular state. Then you start always from that snapshot. You may even be able to create multiple instances by cloning the snapshot but that would be a complex task in itself as you then need to convince Oracle to listen on different IPs etc. Or you use localhost and inject the test code on the machine.

Cheers

        robert Received on Wed Sep 24 2014 - 18:55:12 CEST

Original text of this message