【问题标题】:Can pytest ignore import dependencies? I want to unit test Pi codepytest 可以忽略导入依赖项吗?我想对 Pi 代码进行单元测试
【发布时间】:2018-03-13 04:42:58
【问题描述】:

我正在为我的项目使用(据我所知)Raspberry Pi 特定库 (smbus)。我想使用 pytest 在我的机器上和我学校服务器上的 gitlab-ci 上测试软件。这并不重要,但这是针对俱乐部项目而不是家庭作业。

我的环境描述:

我正在使用 Ubuntu 17.04/PyCharm 作为我的开发环境。 我可以访问的 gitlab 运行器是基于 docker 的(我选择环境)。

以上两者都没有smbus的能力,也没有i2c comms的能力。

我想知道是否可以告诉 pytest 忽略 smbus 导入而不在导入周围添加 try/except ?

谢谢。

【问题讨论】:

  • try / except 有什么不好?

标签: python python-3.x raspberry-pi raspberry-pi3


【解决方案1】:

如果你真的想避免 try/accept 你可以有一个函数返回导入...

def get_smbus():
    import smbus
    return smbus

smbus = get_smbus()

这使您能够使用模拟库轻松覆盖get_smbus 函数。

但我个人会使用try / except 并抓住ImportError

【讨论】:

  • 谢谢。我只是假设 try/except 是不好的做法。
  • 尝试 except 实际上是一个非常好的做法 - 只要您捕获特定的异常。捕捉所有错误并忽略它们是不好的做法。
猜你喜欢
  • 1970-01-01
  • 2015-08-02
  • 2019-08-25
  • 2014-05-29
  • 2010-09-22
  • 2010-10-04
  • 2015-06-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多