как применять в зависимых / каскадных методах DebuggerHiddenAttribute - PullRequest
1 голос
/ 21 мая 2019

Я пытаюсь игнорировать исключение, которое возникает при запуске моих методов тестирования.Я использую проект 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);
    }
}

Сообщения об ошибках не требуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...