openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #13108
Re: Errors running individual tests that call into the database
I have pushed a possible way we can fix this:
https://bugs.launchpad.net/nova/+bug/1012179
Not sure I like the fix I have come up with though.
Cheers,
John
> -----Original Message-----
> From: Daniel P. Berrange [mailto:berrange@xxxxxxxxxx]
> Sent: 11 June 2012 18:14
> To: John Garbutt
> Cc: openstack@xxxxxxxxxxxxxxxxxxx; Monty Taylor
> Subject: Re: [Openstack] Errors running individual tests that call into the
> database
>
> On Mon, Jun 11, 2012 at 05:51:44PM +0100, Daniel P. Berrange wrote:
> > On Mon, Jun 11, 2012 at 05:04:51PM +0100, John Garbutt wrote:
> > > Hi,
> > >
> > > I am trying to run tests like "test_xenapi" and "test_libvirt" by
> > > themselves do things like:
> > > nosetests test_xenapi
> > > But it does work, I get DB errors relating to missing tables.
> > > However, I can successfully run all the tests.
> > >
> > > The way I understand it:
> > > - nova.tests.__init__.py setup() does the database setup
> > > - nova.test.py TestCase.setUp() does the resetting of the db
> > > It is almost like doing "nosetests test_asdf" skips the database
> > > setup in nova.tests.__init__.py, is that correct?
> > >
> > > Any ideas on how to run tests individually, but still get the
> > > database correclty initialized? Am I just calling the tests incorrectly?
> >
> > I don't know the answer to your question, but I found this regression
> > in functionality was caused by the following commit:
> >
> > commit cf31b789927cedfd08c67dcf207b4a10ce2b1db6
> > Author: Monty Taylor <mordred@xxxxxxxxxxxx>
> > Date: Sun Jun 3 13:03:21 2012 -0400
> >
> > Finalize tox config.
> >
> > Shrink tox.ini to the new short version.
> > Fix the test cases to be able to be run in nosetets plus the
> > openstack.nose_plugin, which finally removes the need for
> > nova/testing/runner.py
> > Also, now we'll just output directly to stdout, which will
> > make nose collect the trace logging directly and either output
> > it at the end of the run, or inject it into the xunit output
> > appropriately.
> >
> > Change-Id: I1456e18a11a840145492038108bdfe812c8230d1
> >
> > Before that commit, it was possible to just invoke something like
> >
> > ./run_tests.sh -N -P test_libvirt
> >
> > from the nova top level GIT directory to run an individual test suite.
>
> After examining that commit I discovered that the old testing/runner.py file
> have a bit of magic to auto-prefix nova.tests onto any args:
>
> # If any argument looks like a test name but doesn't have "nova.tests" in
> # front of it, automatically add that so we don't have to type as much
> for i, arg in enumerate(argv):
> if arg.startswith('test_'):
> argv[i] = 'nova.tests.%s' % arg
>
> Since we lost this, you now have to fully specify the names of the individual
> tests you want to run. eg this works for me:
>
> ./run_tests.sh -N -P nova.tests.test_libvirt
>
>
> Regards,
> Daniel
> --
> |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
> |: http://libvirt.org -o- http://virt-manager.org :|
> |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
> |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
References