pytest插件为BigQuery提供的另一个SQLtesting框架

pytest-sql-bigquer的Python项目详细描述


Bigquery SQL的Pytest插件

pytestsqlbigquery是pytest插件,它为bigquery提供了一个sqlunitest框架。 该插件采用端到端的方式在SQL引擎上运行SQL测试。在

然而,作者更接近于tst-SQL代码

请参见以下SQL代码:

withdatasetas(select1unionallselect2),__check_sampleas(select'test'aslabel,count(1)asactual,2asexpectedfromdataset)select*fromdataset

此代码是包含测试用例的最小示例。 __check_sample是一个测试用例,它确保{}视图只有2条记录。在

我们的想法非常简单:“通过SQL自己验证SQL代码。”

这个插件从SQL生成SQL测试代码,并在BigQuery等SQL引擎上执行。在

这种方法的优点是

  • SQL代码拥有规范本身
  • 提供逻辑及其测试代码的可移植性。在
  • 免费到硬模拟数据库系统

开始吧

要求

  • Python>;=3.7

  • sqlparse

  • google cloud bigquery(用于bigquery集成)

  • BigQuery(谷歌云项目)

安装

^{pr2}$

然后,为pytest设置confidist.py。在

importpytestfrompytest_sql_bigquery.integrations.pytestimportSQLReaderForCheckingclassChainPytestFile(pytest.File):def__init__(self,path,parent,chains,**kwargs):super().__init__(path,parent,**kwargs)self.chains=chainsdefcollect(self):forinterpreterinself.chains:yield frominterpreter.collect()defpytest_collect_file(parent,path):ifpath.ext==".sql":returnChainPytestFile(path,parent,[SQLReaderForChecking(path,parent),])

examples/sql目录运行测试

pytest run -vv examples/sql 

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是数据线。getMicrosecondPosition()线程安全?   java我可以设置多个。whereEqualTo在firestore查询中指向文档中的字段?   java Intellij 14 Glassfish服务器未连接。部署不可用   java JPA。如何返回null而不是LazyInitializationException   java TarsosDSP Clap检测   比较基于字符串的java枚举   java空指针异常日历。设定时间   java Hystrix在运行时忽略超时   将数据从Java RESTful服务器推送到Android手机上进行通知   java Jnotify delete vs shift delete问题   java安装失败\u没有匹配\u ABIS res113   TreeJava:传递未实例化的对象引用是如何工作的?   java如何使用Android ringtone manager从资产文件夹播放铃声?   java在Dropwizard的不同状态下使用不同的模拟