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
是一个测试用例,它确保{
我们的想法非常简单:“通过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
- 项目
标签: