【发布时间】:2023-02-25 02:14:01
【问题描述】:
环境
- 带有 Azure SQL 的服务器
- 本地 SQL Server Express
- 使用 SSDT 部署数据库
计划
- [开发人员] 在开发期间在 SQL Server Express 上本地运行数据库单元测试
- [DevOps] 一旦开发人员提交更改,运行管道中的所有单元测试用例,如果所有单元测试通过则继续部署
问题
- [测试 1 - SQL Server Express 2019] 测试项目部署失败,因为 Azure SQL 使用特定版本的 tSQLt (1.0.5873.27393) 失败并出现错误
使用 SAFE 或 EXTERNAL_ACCESS 选项为程序集“tSQLtCLR”创建或更改组件失败,因为 sp_configure 的“clr strict security”选项设置为 1。
- [测试2 - SQL Server Express 2014] 查了2014年的
SELECT @@VERION和Azure SQL,版本号好像是一样的(12.0.2000.8),试了试失败报错将 Microsoft Azure SQL Database v12 指定为目标平台的项目无法发布到 SQL Server 2014
- [测试2 - SQL Server Express 2014] 查了2014年的
其他可能的解决方案
- 设置 2 个差异项目,其中包括来自同一项目的测试用例,其中一个使用用于 Azure SQL 部署的 tSQLt,另一个使用用于 SQL Server Express 2019 的 tSQLt 进行本地测试(我不确定实现之间是否存在任何差异,可能导致不可预知的错误)
- 为每个开发人员创建多个 Azure Sql,以便他们可以并行测试(这对我来说听起来很愚蠢...)
非常欢迎任何关于如何解决 SQL Server Express 问题或其他可能解决方案的 cmets。
【问题讨论】:
标签: sql-server azure-sql-database sql-server-data-tools tsqlt sql-server-unit-testing