【问题标题】:How to run Scrapy unit tests in Pycharm如何在 Pycharm 中运行 Scrapy 单元测试
【发布时间】:2017-01-19 00:25:50
【问题描述】:

我正在使用 Pycharm,试图运行 scrapy 单元测试 - 但它无法运行。 这些错误是因为缺少导入,似乎所有导入都失败了。 例如

 Import error... "no module named mock"

我做了什么:

  1. 从 github 获取 scrapy

  2. 运行 pip 以安装 requirements.txt 中的所有依赖项

  3. 安装了 TOX,确保我可以使用 TOX 运行测试。

  4. 配置 Pycharm 以使用 py.test 运行测试

我正在开发 Ubuntu 14.04、Python 2.7。

【问题讨论】:

    标签: python python-2.7 scrapy pycharm


    【解决方案1】:

    您还需要 pip install tests requirements:

    pip install -r tests/requirements.txt  # Python 2
    pip install -r tests/requirements-py3.txt  # Python 3
    

    这将安装 mock 包并解决 Python 2 上的 no module named mock(假设您安装到相同的环境中,您正在运行测试)。


    请注意,要运行测试,您应该使用 tox(它还会在测试运行设置阶段安装来自 requirements.txt 的缺失依赖项):

    tox -- tests/test_loader.py
    

    (刚刚完成所有这些,测试正在运行并为我通过)。

    仅供参考,这是我为 tox runner 配置的 PyCharm:

    【讨论】:

    • 谢谢,你的意思是我应该配置 Pycharm 使用 tox?
    • @omerschleifer 我认为您可以在使用pip(答案的第一部分)安装依赖项后保留pytest 运行器来运行测试。顺便说一下,这种情况下的py.test 命令应该看起来像py.test --cov=scrapy --cov-report= tests/test_loader.py。或者,第二个选项,配置 tox 来运行测试(在这种情况下,它会自动安装依赖项)——这可能是一个更好的方法,因为它在文档中被推荐。
    • 感谢 agian,在安装测试要求后,我仍然可以使用 tox 运行,与以前一样 - 但在 Pycharm 工作室中失败。我没有看到将 tox 设置为 pycharm 中的跑步者的选项
    • @omerschleifer 好的,谢谢,我已经更新了答案,并附上了我的用于 scrapy 的 tox runner 配置的屏幕截图。
    • 这是一个显示在 PyCharm 中设置毒物的截屏视频:youtube.com/watch?v=nmBbR97Vsv8
    猜你喜欢
    • 2014-04-08
    • 2015-06-22
    • 2012-06-07
    • 2016-08-19
    • 2019-01-15
    • 2016-01-18
    • 1970-01-01
    • 2014-07-28
    • 1970-01-01
    相关资源
    最近更新 更多