我們使用NHIbernate,.net和sql server2005。什麼是最mystyfing是使用同一數據庫,同一單元測試,我的朋友都沒有任何消息,並且所有的測試都通過,而與我有我真的錯誤信息:mystyfing單元測試失敗
ERROR [TestRunnerThread] ADOExceptionReporter [(null)]- The DELETE statement conflicted with the REFERENCE constraint "FK_Project_Client". The conflict occurred in database "TestDev", table "dbo.Project", column 'ClientID'. The statement has been terminated. 13:10:02,656 ERROR [TestRunnerThread] SessionImpl [(null)]- could not synchronize database state with session NHibernate.ADOException: could not delete: [Client#875][SQL: DELETE FROM Client WHERE ID = ?] ---> System.Data.SqlClient.SqlException: The DELETE statement conflicted with the REFERENCE constraint "FK_Project_Client". The conflict occurred in database "TestDev", table "dbo.Project", column 'ClientID'.
在System.Data.SqlClient.SqlConnection.OnError(SQLEXCEPTION 例外,布爾breakConnection)
在 System.Data.SqlClient.SqlInternalConnection.OnError(SQLEXCEPTION 例外,布爾breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand的cmdHandler, SqlDataReader的數據流, BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SQLDATA讀者 DS,RunBehavior runBehavior,字符串 resetOptionsString)
在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(的CommandBehavior cmdBehavior,RunBehavior runBehavior, 布爾returnStream,布爾異步)
在 System.Data .SqlClient.SqlCommand.RunExecuteReader(的CommandBehavior cmdBehavior,runBehavior runBehavior, 布爾returnStream,字符串方法, DbAsyncResult結果)
在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult 結果,字符串方法名,布爾 sendToPipe)
在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
在 NHibernate的。 Impl.BatcherImpl.ExecuteNonQuery在 NHibernate.Impl.NonBatchingBatcher.AddToBatch(IExpectation 期望)(IDbCommand的 CMD)
在 NHibernate.Persister.Entity.AbstractEntityPersister.Delete(對象 ID,對象的版本,的Int32Ĵ,對象 OBJ,SqlCommandInfo SQL, ISessionImplementor會話,對象[] loadedState)
---完的內部異常棧 trace ---
at NHibernate.Persister.Entity.AbstractEntityPersister。刪除(對象 ID,對象的版本,的Int32Ĵ,對象 OBJ,SqlCommandInfo SQL, ISessionImplementor會話,對象[] loadedState)
在 NHibernate.Persister.Entity.AbstractEntityPersister.Delete(對象 ID,對象版本,對象OBJ, ISessionImplementor會話)
在 NHibernate.Impl.ScheduledDeletion.Execute()
在 NHibernate.Impl.SessionImpl.Execute(IExe可切割 可執行文件)
在 NHibernate.Impl.SessionImpl.ExecuteAll(IList的 列表)
在 NHibernate.Impl.SessionImpl.Execute()
該語句已終止。 像上面的,我有各種其他測試與錯誤信息
失敗無法與會話
whay我有錯誤消息的任何想法,同步數據庫狀態 ,沒有人知道?
同意。這聽起來像是測試不會自行清理,或者可能測試數據庫和測試實際上並不同步。進行一次性失敗的測試,然後從頭開始重新構建最新的數據庫,並自行運行該測試。 – Sisyphus 2011-05-21 01:54:41