Azure devops 在DevOps管道单元测试中添加和使用MDF
我想使用一个Azure devops 在DevOps管道单元测试中添加和使用MDF,azure-devops,mdf,Azure Devops,Mdf,我想使用一个.MDFSQL Server数据库文件,在通过DevOps管道部署时,在Visual Studio测试期间对该文件执行单元测试 我将.MDF和.LDF文件添加到单元测试项目中,并且可以在本地执行。我已确认已使用列出文件夹内容的PowerShell脚本将文件正确部署到管道中。我还通过确保所有内容都是大写来确认案例敏感性 将Visual Studio测试步骤添加到现有工作管道时,我最初在测试初始化期间尝试保存到数据库时收到以下错误: Microsoft.Data.SqlClient.Sq
.MDF
SQL Server数据库文件,在通过DevOps管道部署时,在Visual Studio测试期间对该文件执行单元测试
我将.MDF
和.LDF
文件添加到单元测试项目中,并且可以在本地执行。我已确认已使用列出文件夹内容的PowerShell脚本将文件正确部署到管道中。我还通过确保所有内容都是大写来确认案例敏感性
将Visual Studio测试步骤添加到现有工作管道时,我最初在测试初始化期间尝试保存到数据库时收到以下错误:
Microsoft.Data.SqlClient.SqlException:无法更新数据库“D:\A\1\S\APPCORETESTS\BIN\RELEASE\NETCOREAPP3.1\MYTESTDATABASE.MDF”,因为该数据库是只读的
我在测试初始化期间添加了以下调用:
ALTER DATABASE [MYTESTDATABASE.MDF] SET READ_WRITE
我现在得到以下错误:
无法打开物理文件“D:\a\1\s\AppCoreTests\bin\Release\netcoreapp3.1\MYTESTDATABASE.mdf”。操作系统错误5:“5(访问被拒绝)。”
无法打开物理文件“D:\a\1\s\AppCoreTests\bin\Release\netcoreapp3.1\myTestDatabase\u log.ldf”。操作系统错误5:“5(访问被拒绝)。”
我能够使用以下连接字符串(从配置中,因此使用两个反斜杠“\”)打开到.MDF
文件的连接:
我能够运行一个查询,返回多个数据库,包括我的数据库(以及tempdb、master等):
如果此错误在本地发生,我将为
.MDF
/.LDF
所在的文件夹设置文件夹权限,但不知道在DevOps管道中是否可以这样做,或者这是否是解决此问题的正确方法。您使用的是托管代理还是自托管代理
Azure DevOps管道通过服务帐户访问文件,我们应该检查服务帐户权限并确保其具有足够的权限
如果您使用的是hosted agent,它将通过此帐户访问文件测试生成服务(组织名称)
,我们需要打开项目设置->存储库->选择repo并检查服务帐户测试生成服务({Org name})
权限,还需要检查管道->设置
如果使用自托管代理并访问本地文件,则应检查文件权限。步骤:选择本地->属性->安全,服务帐户名称应为Administrators(代理服务名称\管理员)或Users(代理服务名称\用户)
顺便说一下,我们可以将代理服务帐户更改为您的所有者帐户
步骤:在代理机器上打开服务并搜索代理服务帐户,检查下面的图片,只需将帐户名和密码更改为您的,然后它将使用此帐户执行操作
您使用的代理是托管代理还是自托管代理 Azure DevOps管道通过服务帐户访问文件,我们应该检查服务帐户权限并确保其具有足够的权限 如果您使用的是hosted agent,它将通过此帐户访问文件
测试生成服务(组织名称)
,我们需要打开项目设置->存储库->选择repo并检查服务帐户测试生成服务({Org name})
权限,还需要检查管道->设置
如果使用自托管代理并访问本地文件,则应检查文件权限。步骤:选择本地->属性->安全,服务帐户名称应为Administrators(代理服务名称\管理员)或Users(代理服务名称\用户)
顺便说一下,我们可以将代理服务帐户更改为您的所有者帐户
步骤:在代理机器上打开服务并搜索代理服务帐户,检查下面的图片,只需将帐户名和密码更改为您的,然后它将使用此帐户执行操作
我正在使用托管代理。我可以通过设置->[repo]->权限查看“测试构建服务({Org name})”用户,但是没有看到任何特定于我需要的权限:|完成拉取请求时绕过策略|推取时绕过策略|贡献|贡献拉取请求|创建分支|创建标记|删除存储库|编辑策略|强制推送|管理注释|管理权限|读取|删除其他人的锁|重命名存储库我正在使用托管代理。我可以通过设置->[repo]->权限查看“测试构建服务({Org name})”用户,但是没有看到任何特定于我需要的权限:|完成拉取请求时绕过策略|推取时绕过策略|贡献|贡献拉取请求|创建分支|创建标记|删除存储库|编辑策略|强制推送|管理注释|管理权限|读取|删除其他人的锁|重命名存储库
"Server=(LocalDB)\\MSSQLLocalDB;AttachDbFileName='|DataDirectory|\\MYTESTDATABASE.MDF'"
select name from sys.databases