Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure devops 在DevOps管道单元测试中添加和使用MDF_Azure Devops_Mdf - Fatal编程技术网

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