随机发生sqlpackage.exe“无法打开数据库”

时间:2012-10-23 17:33:34

标签: unit-testing sql-server-data-tools

我正在使用sqlpackage.exe创建动态数据库来运行单元测试。这在100%的时间本地工作,但不在TFS中。所有单元测试都使用locahost \ sqlexpress的集成安全性。 TFS将随机导致sqlpackage.exe返回以下错误。

对于单元测试,我使用的是here描述的模式,但是经过一些修改后使用带有sqlpackage的dacpac,而不是nhibernate的模式导出功能。

sqlpackage error    : *** Could not deploy package.
sqlpackage error    : Cannot open database "MessagesRepositoryTests" requested by the login. The login failed.
sqlpackage error    : Login failed for user 'DOMAIN\TFSService'.

其他(随机)错误包括另一条提及未能导入目标模型的行。

sqlpackage error    : *** Could not deploy package.
sqlpackage error    : Failed to import target model MessagesRepositoryTests. Detailed message Cannot open database "MessagesRepositoryTests" requested by the login. The login failed.
sqlpackage error    : Login failed for user 'DOMAIN\TFSService'.
sqlpackage error    : Cannot open database "MessagesRepositoryTests" requested by the login. The login failed.
sqlpackage error    : Login failed for user 'DOMAIN\TFSService'.

“DOMAIN \ TFSService”已被授予每个服务器角色(sysadmin,public等)。

有没有人知道为什么这会在我的所有测试中间歇出现?请记住,这只发生在TFS构建自动化单元测试中。

1 个答案:

答案 0 :(得分:0)

我不确定原因的实际根,但是当我从构建过程模板中删除“删除测试结果”目录时,此问题已得到解决。它必须与添加要删除和重新创建的日志/数据文件的目录有关。我已经将我的代码更改为始终将测试数据库直接存储在C:\驱动器下的文件夹中。