1

ランナーでのテスト実行に失敗した後bin/test、コントロールがターミナルに戻る必要があると想定すると、次の例外が発生します。

  Traceback (most recent call last):
    File "bin/test", line 374, in <module>
      '--test-path', '/fast/xxx3/src/xxx-eggs/Products.xxxHospital',
    File "/fast/buildout-cache/eggs/zope.testing-3.9.7-py2.6.egg/zope/testing/testrunner/__init__.py", line 35, in run
      failed = run_internal(defaults, args, script_parts=script_parts)
    File "/fast/buildout-cache/eggs/zope.testing-3.9.7-py2.6.egg/zope/testing/testrunner/__init__.py", line 48, in run_internal
      runner.run()
    File "/fast/buildout-cache/eggs/zope.testing-3.9.7-py2.6.egg/zope/testing/testrunner/runner.py", line 138, in run
      self.run_tests()
    File "/fast/buildout-cache/eggs/zope.testing-3.9.7-py2.6.egg/zope/testing/testrunner/runner.py", line 242, in run_tests
      tear_down_unneeded(self.options, (), setup_layers, True)
    File "/fast/buildout-cache/eggs/zope.testing-3.9.7-py2.6.egg/zope/testing/testrunner/runner.py", line 605, in tear_down_unneeded
      l.tearDown()
    File "/fast/buildout-cache/eggs/plone.app.testing-4.0.2-py2.6.egg/plone/app/testing/helpers.py", line 351, in tearDown
      with z2.zopeApp() as app:
    File "/Users/moo/code/python/parts/opt/lib/python2.6/contextlib.py", line 16, in __enter__
      return self.gen.next()
    File "/fast/buildout-cache/eggs/plone.testing-4.0.3-py2.6.egg/plone/testing/z2.py", line 242, in zopeApp
      app = addRequestContainer(Zope2.app(connection), environ=environ)
    File "/fast/buildout-cache/eggs/Zope2-2.13.12-py2.6.egg/Zope2/__init__.py", line 52, in app
      return bobo_application(*args, **kw)
    File "/fast/buildout-cache/eggs/Zope2-2.13.12-py2.6.egg/App/ZApplication.py", line 75, in __call__
      return connection.root()[aname]
    File "/fast/buildout-cache/eggs/ZODB3-3.10.5-py2.6-macosx-10.7-x86_64.egg/ZODB/Connection.py", line 366, in root
      return RootConvenience(self.get(z64))
    File "/fast/buildout-cache/eggs/ZODB3-3.10.5-py2.6-macosx-10.7-x86_64.egg/ZODB/Connection.py", line 248, in get
      p, serial = self._storage.load(oid, '')
  AttributeError: 'NoneType' object has no attribute 'load'

(明らかにZODBの内部に関連していますか?)

その後、実行はそこでハングします。

CTRL+C は何もしません。

テスト プロセスを終了する唯一の方法は、CTRL+Z で終了してからkill %1.

何か案は?OSX.

4

2 に答える 2

4

テストが依存している一部のパッケージの zcml を適切にロードできなかったときに、同様のトレースバックが発生したことがあります。セットアップをチェックして、必要なすべての部品が適切にロード/インストールされていることを確認しましたか?

于 2012-05-30T02:40:12.943 に答える
2

私が見つけたのは、考えられる2つの理由です。

  1. @Chris Ewingが言ったように、「依存する」ZCMLのロードに関する問題。私が使う

    xmlconfig.string(
        '<configure xmlns="http://namespaces.zope.org/zope">'
        '  <include package="z3c.autoinclude" file="meta.zcml" />'
        '  <includePlugins package="plone" />'
        '  <includePluginsOverrides package="plone" />'
        '</configure>',
        context=configurationContext)
    

    z3c.autoload をトリガーします。

  2. 基地の検査順序の問題。私はこのような2つの拠点を持っていました:

               PLONE_FIXTURE     PLONE_FIXTURE
                   \                  / 
    LAYER =      (MY_FIXTURE1,  MY_FIXTURE2, )
    

    それは一緒に働いた

     PLONE_FIXTURE -> MY_FIXTURE1 -> MY_FIXTURE2
    
     LAYER = (MY_FIXTURE2,)
    

-トム

于 2014-10-20T08:45:29.977 に答える