2

下载 Scrapy 0.16 的源代码后,我尝试在我的 Macbook 上使用 ./bin/runtests.sh 运行测试。令人惊讶的是,测试失败了。它给出了这些结果:失败(跳过=46,失败=9,成功=887)。大家有遇到过这个问题吗?你如何解决它?

[FAIL]
Traceback (most recent call last):
  File "/Users/lws/Downloads/scrapy-scrapy-7b5310d/scrapy/tests/test_utils_queue.py", line 128, in test_close_open
    self.assertEqual(q.pop(), 'c')
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/trial/unittest.py", line 270, in assertEqual
    % (msg, pformat(first), pformat(second)))
twisted.trial.unittest.FailTest: not equal:
a = None
b = 'c'

[FAIL]
Traceback (most recent call last):
  File "/Users/lws/Downloads/scrapy-scrapy-7b5310d/scrapy/tests/test_utils_queue.py", line 128, in test_close_open
    self.assertEqual(q.pop(), 'c')
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/trial/unittest.py", line 270, in assertEqual
    % (msg, pformat(first), pformat(second)))
twisted.trial.unittest.FailTest: not equal:
a = 'e'
b = 'c'
4

1 回答 1

2

是的,这是 scrapy 中的一个错误,它似乎不会在 GNU/Linux 上表现出来,只在 mac os 上表现出来。这是由于 FifoDiskQueue 将无缓冲文件读取与缓冲文件查找混合在一起造成的。

我写了一个PR来解决这个问题以及发现的其他一些兼容性问题。不确定修复程序何时会使其成为新版本。

Scrapy 在 mac os 上确实可以正常工作(FifoDiskQueue 是默认情况下不使用的替代队列机制)。

于 2012-12-01T16:42:45.593 回答