昨晚我成功地完成了一个构建。我今天早上起来运行另一个程序,没有改变任何配置或修改任何源代码。现在我的构建失败了,在运行我的nosetests和coverage时,出现了消息“没有源代码”。
NoSource: No source for code: '/home/matthew/.hudson/jobs/myproject/workspace/tests/unit/util.py'
. . .
No source for code: '/home/matthew/.hudson/jobs/myproject/workspace/__init__.py'
我唯一的线索是它说找不到的文件不在那里,但它们从来没有,也不应该在那里。例如,在后者中,Hudson的工作区不是Python模块,因此__init__.py
不会存在。
更新:我已确认这不是哈德逊问题。当我运行包含目录本身的nostest时,我会看到类似的消息。同样,报道所寻找的文件从一开始就没有,这让人非常困惑。
摘要:运行
nosetests --with-coverage
时保留现有的覆盖率数据,因此请先删除它。详细信息:我也是通过哈德逊和鼻子测试遇到的。这个错误来自
coverage/results.py:18
(覆盖范围3.3.1-有3个地方引发了这个错误,但这是相关的错误)。它试图打开与实际跟踪的模块对应的.py文件。一个小演示:显然我有一个文件stopwords.pyc,它被执行/跟踪,但是没有stopwords.py。但在我的代码中,没有任何地方是我导入了stopwords,甚至删除了.pyc,我仍然得到了错误。
然后,一个简单的
strings .coverage
显示对stopwords.py的引用仍然存在。nosetests --with-coverage
正在使用coverage的追加或合并功能,这意味着旧的.coverage数据仍在徘徊。事实上,删除。覆盖范围解决了这个问题。我不知道它为什么认为该文件存在,但可以告诉coverage.py使用
coverage xml -i
开关忽略这些问题。如果你想找出错误,给我打个电话(ned在ned batchelder com)。
确保那里没有.pyc文件,这可能是过去存在的。
相关问题 更多 >
编程相关推荐