【问题标题】:Including unit tests in (test.)pypi package在 (test.)pypi 包中包含单元测试
【发布时间】:2019-05-25 15:51:42
【问题描述】:

我的包中有一组单元测试,它们在我的开发工作流程中运行良好,并在我推送到 github 时自动运行(使用 travis)。在 pypi 上分发我的项目之前,我上传到了测试 pypi 服务器(https://test.pypi.org),但我不清楚现阶段如何测试包。我从未见过官方发行版中包含单元测试,我已经seen some answers 建议不应该这样做。 但是,如何测试代码的实际打包版本是否正常工作?

我确实尝试将我的单元测试包含在 pypi 发行版中:在我的 MANIFEST.in 我有,

include PACKAGE/tests
recursive-include PACKAGE/tests *

我在我的setup.py 中添加了include_package_data=True,,并添加了一个__main__.py 文件,

import nose
nose.main()

在里面。当我将 pip 安装的包作为模块运行时(即python -m PACKAGE),它找不到任何要运行的单元测试。 这是错误的方向吗,有没有更好的方法?

【问题讨论】:

    标签: python unit-testing pip workflow pypi


    【解决方案1】:

    无需在包中包含测试即可对其进行测试。您可以从 pypi 安装包,确保安装的包被 python 解释器(不是包的某些本地工作副本)找到,然后运行测试脚本的本地副本。

    【讨论】:

    • 投了反对票,因为 OP 在问“我该怎么做 X?”,而你只是说“你不需要做 X。你可以做 Y。”当 X 和 Y 是完全不同的东西时。
    • 我不同意。尽管标题可能暗示了这一点,但问题不是如何在包中包含单元测试,而是如何确保打包的代码正常工作,以及是否有比在包中包含单元测试更好的方法来做到这一点。原始海报以粗体标记了这两个问题。
    猜你喜欢
    • 2010-12-25
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 2019-09-06
    相关资源
    最近更新 更多