PowerShell是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能,也可以调用Azure。在Win10里面附带PowerShell V5,PowerShell也能够容易地集成到Jenkins里面。
本文要解决的问题:
数据库部署之后进行冒烟测试,确保相应的对象,比如表,存储过程,视图,具体数据等等已经部署到位,避免到了后续集成测试时与其它错误混杂在一起,减少Root Cause的时间。
解决方案:
- 利用PowerShell里面的Pester测试框架,Pester提供了一个用来在PowerShell内部通过单元测试执行和验证PowerShell命令的框架。Pester遵循一个文件命名规范:命名的测试可以在测试时被自动发现,和一套简单的函数集,Pester相当于是PowerShell的xUnit。
- 用户只需专注在写好SQL语句来校验数据库,注意2个要点:
I. 以分号;作为一批次Sql语句的分隔
II. Sql语句执行返回有记录,为正确
比如如下
-- check newly deployed
SELECT * from sys.all_objects where name = 'td_searchbyname' and create_date > dateadd(MI, -10, getdate());
-- check deployed and no current modification
SELECT * from sys.all_objects where name = 'td_searchbyemail' and modify_date < dateadd(MI, -10, getdate());
SELECT * FROM TABLE123 WHERE FIELDA = 'EXPECTEDVALUE' AND FIELDB = 'FFFF';
-- check output of query procedure is the expected value, with several lines
create table #TempTable1(name VARCHAR(50) PRIMARY KEY, quanti