0

sqlpackage.exeを使用して、単体テストを実行する動的データベースを作成しています。これは100%の時間ローカルで機能しますが、TFSでは機能しません。すべての単体テストは、locahost\sqlexpressの統合セキュリティを使用します。TFSにより、sqlpackage.exeはランダムに次のエラーを返します。

単体テストでは、ここで説明するパターンを使用していますが、nhibernateのスキーマエクスポート機能とは対照的に、sqlpackageでdacpacを使用するようにいくつかの変更を加えています。

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ビルドの自動化された単体テストからのみ発生することを忘れないでください。

4

1 に答える 1

0

原因の実際の原因はわかりませんが、ビルド プロセス テンプレートから「テスト結果の削除」ディレクトリを削除すると、この問題は解決されました。ログ/データファイルを削除して再作成するディレクトリに関係している必要があります。それ以来、テスト データベースを常に C:\ ドライブの直下のフォルダーに保存するようにコードを変更しました。

于 2012-10-28T21:22:24.447 に答える