我们正在使用NHIbernate,.net和sql server2005。什么是mystyfing最多的是使用相同的数据库,相同的单元测试,我的朋友没有任何类型的消息,他们的所有测试都在通过,而我的我有错误消息:< / p>
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'.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,Boolean breakConnection)
在 System.Data.SqlClient.SqlInternalConnection.OnError(SQLEXCEPTION exception,Boolean breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader的 ds,RunBehavior runBehavior,String resetOptionsString)
在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(的CommandBehavior cmdBehavior,RunBehavior runBehavior, Boolean returnStream,Boolean async)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(的CommandBehavior cmdBehavior,RunBehavior runBehavior, Boolean returnStream,String方法, DbAsyncResult结果)
在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result,String methodName,Boolean sendToPipe)
在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
在 NHibernate.Impl.BatcherImpl.ExecuteNonQuery(IDbCommand的 CMD)
在 NHibernate.Impl.NonBatchingBatcher.AddToBatch(IExpectation 期望)
在 NHibernate.Persister.Entity.AbstractEntityPersister.Delete(对象 id,Object version,Int32 j,Object obj,SqlCommandInfo sql, ISessionImplementor会话,Object [] loadedState)
---内部异常堆栈的结束 追踪---
在 NHibernate.Persister.Entity.AbstractEntityPersister.Delete(对象 id,Object version,Int32 j,Object obj,SqlCommandInfo sql, ISessionImplementor会话,Object [] loadedState)
在 NHibernate.Persister.Entity.AbstractEntityPersister.Delete(对象 id,Object version,Object obj, ISessionImplementor session)
在 NHibernate.Impl.ScheduledDeletion.Execute()
在 NHibernate.Impl.SessionImpl.Execute(IExecutable 可执行文件)
在 NHibernate.Impl.SessionImpl.ExecuteAll(IList的 列表)
在 NHibernate.Impl.SessionImpl.Execute()
该声明已被终止。 与上面一样,我正在使用错误消息
进行各种其他测试失败无法同步数据库状态 与会话
有任何想法,我有错误信息,有人知道吗?
答案 0 :(得分:2)
所有测试是否互相排斥?也就是说它们彼此都运行independently
可能是1次测试干扰了另一次测试。
如果你自己运行测试,你会遇到同样的问题吗?
您是在自己的开发数据库上运行测试还是共享开发数据库?如果它是您自己的,那么data
与您的同事完全相同吗?
我知道这不是一个严格的答案,并且有很多问题,但希望其中一个问题会引导您找到解决方案。