pytest可以忽略导入依赖吗?我想对 Pi 代码进行单元测试
Can pytest ignore import dependencies? I want to unit test Pi code
我正在为我的项目使用(据我所知)Raspberry Pi specific 库 (smbus)。我想使用 pytest 在我的机器上和在我学校的服务器上使用 gitlab-ci 测试软件。这并不重要,但这是针对俱乐部项目而非家庭作业。
我的环境描述:
我正在使用 Ubuntu 17.04/PyCharm 作为我的开发环境。
我可以访问的gitlab runner是基于docker的(我选择环境)。
以上两者都没有smbus的能力,也没有i2c通讯的能力。
我想知道是否可以告诉 pytest 忽略 smbus 导入而不在导入周围添加 try/except?
谢谢。
如果你真的想避免 try
/accept
你可以有一个函数 return 导入...
def get_smbus():
import smbus
return smbus
smbus = get_smbus()
这使您能够使用模拟库轻松覆盖 get_smbus
函数。
但我个人会使用 try
/ except
并捕获 ImportError
.
我正在为我的项目使用(据我所知)Raspberry Pi specific 库 (smbus)。我想使用 pytest 在我的机器上和在我学校的服务器上使用 gitlab-ci 测试软件。这并不重要,但这是针对俱乐部项目而非家庭作业。
我的环境描述:
我正在使用 Ubuntu 17.04/PyCharm 作为我的开发环境。 我可以访问的gitlab runner是基于docker的(我选择环境)。
以上两者都没有smbus的能力,也没有i2c通讯的能力。
我想知道是否可以告诉 pytest 忽略 smbus 导入而不在导入周围添加 try/except?
谢谢。
如果你真的想避免 try
/accept
你可以有一个函数 return 导入...
def get_smbus():
import smbus
return smbus
smbus = get_smbus()
这使您能够使用模拟库轻松覆盖 get_smbus
函数。
但我个人会使用 try
/ except
并捕获 ImportError
.