mystyfing单元测试失败

时间:2011-05-20 09:20:52

标签: sql-server-2005 nhibernate nunit-2.5

我们正在使用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()

     

该声明已被终止。   与上面一样,我正在使用错误消息

进行各种其他测试失败      

无法同步数据库状态   与会话

有任何想法,我有错误信息,有人知道吗?

1 个答案:

答案 0 :(得分:2)

所有测试是否互相排斥?也就是说它们彼此都运行independently可能是1次测试干扰了另一次测试。

如果你自己运行测试,你会遇到同样的问题吗?

您是在自己的开发数据库上运行测试还是共享开发数据库?如果它是您自己的,那么data与您的同事完全相同吗?

我知道这不是一个严格的答案,并且有很多问题,但希望其中一个问题会引导您找到解决方案。