pytest可以忽略导入依赖吗?我想单元测试Pi代码

时间:2017-10-02 05:29:04

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

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

我的环境说明:

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

以上两者都不具备smbus能力或i2c通信能力。

我想知道是否有可能告诉pytest忽略smbus导入而不添加try / except导入?

感谢。

1 个答案:

答案 0 :(得分:1)

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

def get_smbus():
    import smbus
    return smbus

smbus = get_smbus()

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

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