[英]Integration testing garbage data
我已经使用MSTest设置了集成测试。 我的集成测试会创建虚假数据并将其插入数据库(真实依赖项)。 对于每个业务对象,我都有一个像这样的方法,该方法创建一个“假”并将其插入到数据库中:
public static EventAction Mock()
{
EventAction action = Fixture.Build<EventAction>().Create();
action.Add(false);
AddCleanupAction(action.Delete);
AppendLog("EventAction was created.");
return action;
}
我在[AssemblyCleanup]中清理了所有假货:
public static void CleanupAllMockData()
{
foreach (Action action in CleanUpActions)
{
try
{
action();
}
catch
{
AppendLog($"Failed to clean up {action.GetType()}. It is possible that it was already cleaned up by parent objects.");
}
}
}
现在,我有一个大问题。 在我的持续集成环境(TeamCity)中,我们有一个单独的数据库进行测试,并且在每次测试运行后都会进行清理,但是在我的本地环境中,集成测试指向我的本地数据库。 现在,如果由于某种原因取消了测试运行,这将在我的本地数据库中留下大量垃圾数据,因为从不调用CleanupAllMockData()。
处理此问题的最佳方法是什么? 我找不到在MSTest中拦截测试取消的方法。
我看到两种解决您的问题的方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.