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