单元测试执行后,有没有什么好方法将测试数据删除?单元测试执行后,总会留一些测试数据,时间长了越来越多,不删除肯定不行,而且可能有唯一键的限制,必须删除没法用事务,因为每个方法里面事务都是已经commit了手动删? 太累truncate table? 不能全部给删了啊...在单元测试的每个方法里用程序删除? 那单元测试的编码量可增加了一倍了写在单元测试的TearDown方法里? 那就不能保持每个测试独立性了,而且TearDown方法里也不知道那些是新插入的测试数据啊有什么好方法吗???

解决方案 »

  1.   

    你使用的是 NUnit 吗?建议做法:
    [SetUp] 中添加测试数据;
    [TearDown]中删除测试数据;记住: 测试数据在测试后,绝对不能影响现有数据。
      

  2.   

    测试数据都放到csv文件中读取是否可以避免此问题
      

  3.   

    做过gost吗?
    数据库备份一份,测试结束了后恢复一下,就ok了
      

  4.   

    AloneSword:
    [SetUp] 中添加测试数据;
    [TearDown]中删除测试数据; 如果只是读取的测试没有问题
    可是有时候要测试的方法就是添加,删除数据的方法啊joycepure18:
    你是说ghost?
    做开发每天要运行多少遍单元测试?每次ghost?不现实啊?zhzuo:
    可是虚拟机的数据库也会有垃圾数据,如何清理?
      

  5.   

    修改方法,用统一事务
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 
    http://feiyun0112.cnblogs.com/
      

  6.   

    用统一事务的话,那岂不是调用函数后还得再调用commit事务的函数?
    而且还有connection的dispose等等,更麻烦啊