使用plone.app.testing进行ImportError

时间:2011-10-25 07:17:36

标签: testing plone buildout

我目前正在使用Professional Plone 4 Development,同时使用4.1.2的统一安装程序。我不确定在书中的显式构建过程中使用安装程序是否会导致问题,但是我在将示例与安装的实际情况捆绑在一起时遇到了很多麻烦。现在,我遇到了为我正在创建的策略包运行测试的问题。

在包的 setup.py 中,我有:

extras_require={
    'test': ['plone.app.testing',]
},

develop.cfg

[buildout]
parts +=
    test

[test]
recipe = zc.recipe.testrunner
defaults = ['--auto-color', '--auto-progress']

最后, testing.py 导入:

from plone.app.testing import (
    PloneSandboxLayer,
    applyProfile,
    PLONE_FIXTURE,
    IntegrationTesting,
)

使用开发配置运行buildout后,测试运行器按预期安装到bin / test。但是尝试运行该软件包的测试可以得到以下结果:

$ bin/test -s ctcc.policy
bin/test:239: DeprecationWarning: zope.testing.testrunner is deprecated in favour of zope.testrunner.
/opt/plone41/buildout-cache/eggs/zope.testing-3.9.6-py2.6.egg/zope/testing/testrunner/formatter.py:28: DeprecationWarning: zope.testing.exceptions is deprecated in favour of zope.testrunner.exceptions
  from zope.testing.exceptions import DocTestFailureException
Test-module import failures:

Module: ctcc.policy.tests

Traceback (most recent call last):
  File "/opt/plone41/zeocluster/src/ctcc.policy/ctcc/policy/tests.py", line 2, in <module>
    from ctcc.policy.testing import CTCC_POLICY_INTEGRATION_TESTING
  File "/opt/plone41/zeocluster/src/ctcc.policy/ctcc/policy/testing.py", line 1, in <module>
    from plone.app.testing import (
ImportError: No module named testing

我需要做些什么才能使用plone.app.testing?

如果问题是由于它使用zope.testing.testrunner而不是zope.testrunner,那么这究竟指定了什么?我无法在任何buildout配置中找到它的引用。

感谢。

1 个答案:

答案 0 :(得分:7)

你必须使用extra_requires键在test节中指定你的蛋,如下所示:

[test]
recipe = zc.recipe.testrunner
eggs =
    my.package [test]
defaults = ['--auto-color', '--auto-progress']

更多信息: