0

我有一个 Django 项目,setup.py它看起来像这样:

.
├── backend
├── backoffice
├── backoffice_set
├── manage.py
├── MANIFEST.in
├── media
├── README.rst
├── requirements.txt
├── setup.py
└── venv2.7

当我跑步时:python setup.py test一切正常。但是,当我运行时:

/opt/bin/coverage run setup.py test

测试失败:

writing dependency_links to cfe_backoffice.egg-info/dependency_links.txt
reading manifest template 'MANIFEST.in'
warning: no files found matching '*' under directory 'backoffice/templates/backoffice/'
writing manifest file 'cfe_backoffice.egg-info/SOURCES.txt'
running build_ext
Traceback (most recent call last):
  File "setup.py", line 21, in <module>
    setup(
  File "/opt/lib/python2.7/distutils/core.py", line 152, in setup
    dist.run_commands()
  File "/opt/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/opt/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "build/bdist.linux-i686/egg/setuptools/command/test.py", line 138, in run
    self.with_project_on_sys_path(self.run_tests)
  File "build/bdist.linux-i686/egg/setuptools/command/test.py", line 118, in with_project_on_sys_path
    func()
  File "build/bdist.linux-i686/egg/setuptools/command/test.py", line 164, in run_tests
    testLoader = cks
  File "/opt/lib/python2.7/unittest/main.py", line 94, in __init__
    self.parseArgs(argv)
  File "/opt/lib/python2.7/unittest/main.py", line 149, in parseArgs
    self.createTests()
  File "/opt/lib/python2.7/unittest/main.py", line 158, in createTests
    self.module)
  File "/opt/lib/python2.7/unittest/loader.py", line 130, in loadTestsFromNames
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "/opt/lib/python2.7/unittest/loader.py", line 100, in loadTestsFromName
    parent, obj = obj, getattr(obj, part)
AttributeError: 'module' object has no attribute 'runtests'

有没有人见过这个?你能提出一个解决方案吗?

4

1 回答 1

1

好吧,过了一会儿,我找到了解决方案。Django 没有全局安装,这正是我想要的。

我创建了我的虚拟环境:

 virtualenv --enable-system-packages

所以这导致coverage.py没有安装在我的virtualenv. 因此,解决方案是强制pip安装它-I,这里是完整的操作日志:

/opt/bin/virtualenv --system-site-packages venv2.7
. venv2.7/bin/activate
pip install -r requirements.txt 
pip install -I coverage
coverage run setup.py test
于 2014-02-19T15:33:44.843 回答