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)