[Zope-dev] running test.py with instance_home products.

Chris McDonough chrism at plope.com
Wed Mar 3 01:56:41 EST 2004


On Tue, 2004-03-02 at 14:27, Dieter Maurer wrote:
> >Has anyone found a reasonable strategy for using Zope's test.py to test
> >products that are installed outside the Zope software home?  I try
> >running it from the software home and using the --dir option to point it
> >to where my product is, but it tells me it can't find any tests.
> 
> I do regularly.
> 
> I use "... test.py --lib path_to_myProduct ..."

That didn't work (even using --libdir), it still couldn't find any tests
and I didn't try to debug.  I ended up just adding the following script
as "all.py" to my Product's test dir and call it via "zopectl run
Products/MyProduct/tests/all.py".  It assumes all of the test module
names start with "test" and that they're located with in the "tests"
subdirectory of the product.

product_name = "MyProduct"
from unittest import TextTestRunner, findTestCases, TestSuite
from Zope.Startup.datatypes import importable_name
from Products.Websafe.tests import testQuotaTool
from Products.Websafe.tests import testPropertiesTool
import os
import sys

here = os.path.dirname(sys.argv[0])

test_names = os.listdir(here)

test_modules = []

for name in test_names:
    if name.startswith('test') and not name.endswith('pyc'):
        name, ext = os.path.splitext(name)
        test_modules.append(importable_name('Products.%s.tests.%s'
%(product_name, name)))

suite = TestSuite()
for module in test_modules:
    suite.addTest(findTestCases(module))
runner = TextTestRunner(verbosity=2)
runner.run(suite)





More information about the Zope-Dev mailing list