Я пытаюсь игнорировать исключение, которое возникает при запуске моих методов тестирования.Я использую проект unitTest.
Проблема появляется при запуске метода TestCleanup.Это рекурсивный метод.Этот метод очищает все сущности, созданные в БД во время теста.Это рекурсивный метод из-за зависимостей.
В любом случае вызов этого метода для удаления универсального метода в моем ORM (Petapoco).Выдает исключение, если не может удалить объект.Любая проблема, он запускается снова рекурсивным способом, пока не удалите его.
Теперь проблема, если я отлаживаю VS, много раз останавливаюсь в методе Execute из-за неудачных удалений.Но я не могу изменить этот метод, чтобы игнорировать его.Мне нужен способ игнорировать это, когда я отлаживаю тесты.Способ, подобный DebuggerHiddenAttribute или подобный.
Спасибо!
Я пытался использовать DebuggerHiddenAttribute, но не может работать в методах, вызываемых основным методом.
[TestCleanup(), DebuggerHidden]
public void CleanData()
{
ErrorDlt = new Dictionary<Guid, object>();
foreach (var entity in TestEntity.CreatedEnt)
{
try
{
CallingTest(entity);
}
catch (Exception e)
{
if (!ErrorDlt.ContainsKey(entity.Key))
ErrorDlt.Add(entity.Key, entity.Value);
}
}
if (ErrorDlt.Count > 0)
{
TestEntity.CreatedEnt = new Dictionary<Guid, object>();
ErrorDlt.ForEach(x => TestEntity.CreatedEnt.Add(x.Key, x.Value));
CleanData();
}
}
public int Execute(string sql, params object[] args)
{
try
{
OpenSharedConnection();
try
{
using (var cmd = CreateCommand(_sharedConnection, sql, args))
{
var retv = cmd.ExecuteNonQuery();
OnExecutedCommand(cmd);
return retv;
}
}
finally
{
CloseSharedConnection();
}
}
catch (Exception x)
{
OnException(x);
throw new DatabaseException(x.Message, LastSQL, LastArgs);
}
}
Сообщения об ошибках не требуются.