我正在使用 SQL Server 2017 和 Visual Studio 2019 社区版。
我已经创建了我的第一个 SSDT 项目并在 Jenkins 中对其进行了配置,在运行我的 tSQLt 测试用例之前部署它时我遇到了问题。
请参考我用来配置所有内容的链接:
https://the.agilesql.club/2017/03/sql-server-continuous-deployment-in-a-box/#comment-4976546606
PS:在我使用 SSDT 和 Sql server 最新版本时,对 msbuild 路径和其他相关文件的相关 ps 文件进行了更改,以上链接显示旧版本。
错误
我在 jenkins 中成功构建了我的 ssdt 项目,但是当它尝试在“单元测试”步骤中运行“DeployDacpac.ps1”时,它在管道步骤中显示成功,但实际上脚本显示如下错误:
C:\Program Files (x86)\Jenkins\workspace\Test12_master>powershell.exe -ExecutionPolicy RemoteSigned -File "C:\Program Files (x86)\Jenkins\workspace\Test12_master/Deploy/DeployDacpac.ps1" -projectPath "C:\Program Files (x86)\Jenkins\workspace\Test12_master" -dacpac "C:\Program Files (x86)\Jenkins\workspace\Test12_master/bin/Debug/DatabaseUT.dacpac" -publishProfile "C:\Program Files (x86)\Jenkins\workspace\Test12_master/DatabaseUT.publishprofile.xml"
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Data.Tools.Utilities, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
at Microsoft.Data.Tools.Schema.CommandLineTool.Program.Main(String[] args)
更新:现在将 sqlpackage.exe 的路径从我的本地文件夹更改为 Visual Studio...\SQLDB\DAC\140\sqlpackage.exe" 部署工作正常。但它表明 tSQLt 单元测试步骤运行成功。它没有显示正确消息任何测试用例失败或通过。
以下是单元测试运行步骤的一些结束结果行:
" ... 将包 'AgileSQLClub.tSQLtTestAdapter' 安装到 'C:\Program Files (x86)\Jenkins\workspace\Test17_master\Lib'。缓存https://api.nuget.org/v3/registration5-gz-semver2/已安装agilesqlclub.tsqlttestadapter/index.json 包“AgileSQLClub.tSQLtTestAdapter.0.59.0”。Microsoft (R) Test Execution Command Line Tool Version 16.6.0 版权所有(c) Microsoft Corporation。保留所有权利。请开始测试执行等等……总共有 158 个测试文件与指定的模式匹配。 ”
它在 158 中考虑了包括 tSQLt sps 在内的所有 sps。但没有提及任何单元测试是否通过或失败的结果。
请指导。