【问题标题】:Run python unit test with python 2.7 and 3.x使用 python 2.7 和 3.x 运行 python 单元测试
【发布时间】:2013-11-04 20:42:21
【问题描述】:

我通过 shell 执行我的测试文件并调用来运行我的 python 单元测试

if __name__ == '__main__':
    unittest.main()

在测试文件的末尾。

我必须支持python 2.7和python 3(我正在为Sublime Text编写一个插件。)

我的 shell 运行 python 2.7,它与我的 Mac OS X 版本一起提供。Sublime Text 3 与它自己的 Python 版本捆绑在一起(python 3 的某种风格)。有没有一种方法可以让我在 shell 中同时使用 python 2.7 和 python 3(希望不必安装另一个版本的 python)运行我的测试文件?

【问题讨论】:

  • 您是在问如何在您的系统上使用这两个 Python 版本执行您的代码,或者如何使您的代码与这两个版本兼容?他们都是合理的问题,我只是不确定你问的是哪一个。
  • @Blckknght:我想用两个版本执行代码!感谢您做出这样的决定。

标签: python unit-testing


【解决方案1】:

解决这个问题的标准工具是six,可帮助您编写在python2 和python3 下同样运行的脚本,以及tox,以帮助您在多个python 版本上运行您的测试套件。一旦你的脚本工作和测试,并配置了 tox,你只需运行 tox 来在你的各种 python 下运行你的测试套件。

【讨论】:

  • 谢谢!我会给 tox 一个测试驱动器(双关语)。我的初步理解是 tox 使用虚拟环境。由于在我的系统上运行了两个 实际 版本的 python,有没有办法在不安装第三方程序的情况下运行这些已安装的测试?
  • 安装包(使用您的 setup.py 和 virtualenv)有助于确保用户获得与开发人员相同的体验。由于这是 tox 的核心功能,我认为他们没有提供禁用它的模式。
  • @DudeOnRock:有任何结果吗?
【解决方案2】:

有关于在 2.x 和 3.x 上运行代码的演示幻灯片,http://stromberg.dnsalias.org/~dstromberg/Intro-to-Python/

我从来没有使用过 Sublime,所以我无法帮助你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多