用于控制远程数据访问的pytest插件。
pytest-remotedata的Python项目详细描述
这个包为pytest框架提供了一个插件,它允许 开发人员控制需要从Internet访问数据的单元测试。 它最初是astropy核心包的一部分,但已移动到 分开包装以便更通用。
动机
许多软件包提供了需要从 互联网。这些特性需要测试,但是访问 Internet可以支配测试套件的整个运行时。
pytest-remotedata插件允许开发人员指示哪些单元测试 要求访问Internet,并控制此类测试的时间和是否 应作为测试套件任何给定运行的一部分执行。
安装
可以使用pip:
安装pytest-remotedata插件$ pip install pytest-remotedata
也可以从源代码安装最新的开发版本 存储库:
$ git clone https://github.com/astropy/pytest-remotedata $ cd pytest-remotedata $ python ./setup.py install
在任何情况下,插件都将自动注册以使用 pytest。
用法
安装此插件使两个装饰器可用于pytest:
- remote_data用于标记需要来自Internet的数据的测试
- internet_off用于标记只应在Internet访问时运行的测试 已禁用
这些修饰符可用于使用 @pytest.mark。例如,考虑下面的测试函数 需要从Internet访问数据:
importpytestfromurllib.requestimporturlopen@pytest.mark.remote_datadeftest_remote_data():urlopen('https://astropy.org')
用^{tt10}标记test_remote_data函数$ 指示pytest此测试应仅在访问远程 显式请求数据源。
安装此插件时,--remote-data命令行选项是 添加到pytest命令行界面。
默认行为是跳过标记为remote_data的测试。 如果--remote-data选项没有提供给pytest命令,或者 如果提供了--remote-data=none,则标记为 remote_data将被跳过。所有标记为 internet_off将被执行。
有时检查某些测试是否不意外访问是有用的 互联网。可以通过设置启用严格的远程数据访问检查 remote_data_strict = true在测试包的setup.cfg文件中。如果 此选项已启用,任何试图访问网络但未 用@pytest.mark.remote_data标记的将失败。
提供--remote-data选项或--remote-data=any给 pytest命令行接口将导致所有标记为 remote-data执行。任何标记为^{tt7}的测试$ 将被跳过。
使用--remote-data=astropy运行测试只会导致 从要运行的astropy数据源接收远程数据。与任何其他测试 将跳过数据源。这在测试代码中通过标记表示 使用@pytest.mark.remote_data(source='astropy')测试函数。
在将来,我们打算支持一种可配置的方式来表示 除了astropy之外的远程数据源。
许可证
此插件是根据3条bsd样式的许可证授权的-请参阅 LICENSE.rst文件。