0

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

对于单元测试,我使用的是此处描述的模式,但进行了一些修改以使用带有 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”已被授予每个服务器角色(系统管理员、公共等)。

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

4

1 回答 1

0

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

于 2012-10-28T21:22:24.447 回答