Pycharm控制台接收django鼻子覆盖输出

Pycharm控制台接收django鼻子覆盖输出,django,code-coverage,pycharm,nose,Django,Code Coverage,Pycharm,Nose,我试图在pycharm本身的django应用程序上执行覆盖率测试。我使用django nose/nose作为测试运行程序,我在test_settings.py中有这些设置 # nose settings TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' NOSE_ARGS = [ '--with-coverage', '--cover-package=myapp', ] 如果我转到命令行(或内置的pycharm终端)激活我的virt

我试图在pycharm本身的django应用程序上执行覆盖率测试。我使用django nose/nose作为测试运行程序,我在test_settings.py中有这些设置

# nose settings
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
NOSE_ARGS = [
    '--with-coverage',
    '--cover-package=myapp',
]
如果我转到命令行(或内置的pycharm终端)激活我的virtualenv并运行
django-admin.py测试——设置=myapp.tests.test\u设置。。。我得到了我期望的结果

但是,当我尝试在Pycharm中使用我的测试运行配置时,我不再获得覆盖率输出,我得到的只是:

Testing started at 16:37 ...
There is no such manage file manage
nosetests --with-coverage --cover-package=dynamicbanners --verbosity=1
Creating test database for alias 'default'...
..
Process finished with exit code 0
(我没有manage.py,因为它是一个独立的应用程序,因此我假设是managefile消息)

测试仍然“通过”,但没有输出,也没有创建.coverage文件。我暂时在windows上运行,是否有可能windows拒绝写入.coverage文件,因此没有显示任何内容?或者Pycharm正在吃掉输出,但无法显示它

我会使用内置的pycharm“覆盖率运行”选项,但它似乎有一个问题

NOSE_ARGS = [
    '--with-coverage',
    '--cover-package=myapp',
]
因为当我使用这些选项运行它时,它会抛出一个错误,我认为这是由于初始化了两个覆盖范围实例

Testing started at 16:41 ...
There is no such manage file manage
nosetests --with-coverage --cover-package=myapp --verbosity=1
Creating test database for alias 'default'...
Traceback (most recent call last):
  File "C:\Program Files (x86)\JetBrains\PyCharm 3.0.1\helpers\run_coverage.py", line 34, in <module>
    main()
  File "C:\Users\ptinkler\venvs\myapp_venv\lib\site-packages\coverage\cmdline.py", line 720, in main
    status = CoverageScript().command_line(argv)
  File "C:\Users\ptinkler\venvs\myapp_venv\lib\site-packages\coverage\cmdline.py", line 438, in command_line
     self.do_execute(options, args)
  File "C:\Users\ptinkler\venvs\myapp_venv\lib\site-packages\coverage\cmdline.py", line 580, in do_execute
     self.coverage.stop()
  File "C:\Users\ptinkler\venvs\myapp_venv\lib\site-packages\coverage\control.py", line 410, in stop
     self.collector.stop()
  File "C:\Users\ptinkler\venvs\myapp_venv\lib\site-packages\coverage\collector.py", line 294, in stop
     assert self._collectors[-1] is self
AssertionError

Process finished with exit code 1
测试于16:41开始。。。
没有这样的管理文件管理
nosetests--覆盖范围--cover package=myapp--详细性=1
正在为别名“default”创建测试数据库。。。
回溯(最近一次呼叫最后一次):
文件“C:\Program Files(x86)\JetBrains\PyCharm 3.0.1\helpers\run\u coverage.py”,第34行,在
main()
文件“C:\Users\ptinkler\venvs\myapp\u venv\lib\site packages\coverage\cmdline.py”,主目录第720行
状态=CoverageScript()。命令行(argv)
命令行中的文件“C:\Users\ptinkler\venvs\myapp\u venv\lib\site packages\coverage\cmdline.py”第438行
self.do_执行(选项、参数)
文件“C:\Users\ptinkler\venvs\myapp\u venv\lib\site packages\coverage\cmdline.py”,第580行,在do\u execute中
self.coverage.stop()
文件“C:\Users\ptinkler\venvs\myapp\u venv\lib\site packages\coverage\control.py”,第410行,在stop中
self.collector.stop()
文件“C:\Users\ptinkler\venvs\myapp\u venv\lib\site packages\coverage\collector.py”,第294行,在stop中
断言self.\u收集器[-1]是self
断言错误
进程已完成,退出代码为1
这是尽管我在设置->覆盖中取消选中了“使用捆绑覆盖率.py”


如果您能提供任何帮助,我不想创建一个本地设置文件来删除那些
NOSE_ARGS
,而只是为了在pycharm中显示覆盖率。如果我只能在pycharm testrunner控制台中获得标准覆盖率输出,那还不是世界末日。否则,我想我必须坚持命令行。

你试过
——封面html
?Coverage在html中提供了如此漂亮的输出,以至于我在运行测试时几乎从不使用命令行输出。我会尝试这样做,但有没有理由怀疑它不会只执行与--cover xml选项完全相同的操作,并且在从Pycharm中运行时拒绝输出文件?多年后出现了同样的问题,这是如何解决的?