+1, if you're reusing the database between fixture runs your tests can
quickly become non-deterministic.

To speed things up for you, is SqlLite in-memory an option for your
scenario?

On 8 June 2012 23:33, Fran Knebels <[email protected]> wrote:

> Why not have nhibernate regenerate the schema for every unit test.
>
> Now you've got total isolation because the entire schema is dropped after
> every test.
> On Jun 8, 2012 5:51 PM, "SirSirAaron" <[email protected]> wrote:
>
>> Thanks for the super quick reply Jason. I think you may be right
>> regarding the time at which nhibernate increments the "hi". I understand
>> the basics of hilo generation and the necessity for a table to store the
>> "hi" for synchronization across multiple session factories. That being
>> said, I understand what I'm doing is contrary to its design and
>> I'm purposefully looking for a hack or another way of approaching the
>> problem.
>>
>> At the moment I am using fluent nhibernate's persistencespecification
>> tests for each of my domain objects which will eventually grow to hundred
>> or so tests. Additionally, I create a new session factory for each test in
>> an effort to achieve isolation. I have multiple developers running these
>> tests daily and I would prefer not to increment the "hi".
>>
>> Right now I have a max_lo = 100
>> (2^31[size of int])/100[max_lo]/100[number of unit tests] =  *214 748*
>>
>> Lets say I have 50 developers running these tests 10 times a day then
>> I'll be out of space after a year so:
>> (2^31-1)/100/100/50[developers]/10[number of times test run]/365 = *1.17*
>>
>>
>> On Friday, June 8, 2012 5:02:49 PM UTC-4, Jason Meckley wrote:
>>>
>>> IIRC hi is created the first time the entity is requested, not when the
>>> factory is created. in a unit test this could occur at the same time. In
>>> either case the high value must be created. it's stored in the db to ensure
>>> uniqueness. without this there is a potential for duplicate keys. NH
>>> protects the dev from this. What you described is by design and not meant
>>> to be altered. NH is meant to touch a DB. if you don't want to touch a
>>> physical db use a sqlite in-memory db. they are lighting fast compared to a
>>> file DB.
>>>
>>> On Friday, June 8, 2012 3:35:11 PM UTC-4, SirSirAaron wrote:
>>>>
>>>> When I am running unit tests I don't want increment the hi when a
>>>> session factory is created. Does anyone know a way in which to prevent this
>>>> behavior? Additionally, it would be great if I could set the session
>>>> factory's hi manually without touching the database.
>>>
>>>  --
>> You received this message because you are subscribed to the Google Groups
>> "nhusers" group.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msg/nhusers/-/02Ts1K8I4YsJ.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/nhusers?hl=en.
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "nhusers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/nhusers?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to