Я не хочу останавливать тест при нарушении доступа в тесте с помощью библиотеки повышения - PullRequest
1 голос
/ 17 ноября 2010

Когда происходит нарушение доступа в модульном тесте с библиотекой буст-теста.

, а затем тест был прерван и завершен.

Но я не хочу останавливать юнит-тест. Просто хочу получить исключение или уведомление.

Как мне?

Спасибо, и, пожалуйста, поняли мой дурак английский (8 (|)

ИЗМЕНИТЬ!

Ошибка нарушения доступа отсутствует в тестовой программе. Он находится в целевой программе (пройти тестирование).

например.

целевая программа

int target_function()
{
  char *source;

  strcpy(source, "access violation");

  return 0;
}

тестовая программа

BOOST_AUTO_TEST_CASE(access_violation)
{
  target_function();
  BOOST_CHECK(false);
}

EDIT !!!

Я также использую Visual Studio 2005 в системе Windows и G ++ в системе Linux.

EDIT !!! Я понял ваше мнение. Но я не целевой программист. Так что я не могу их починить. Я просто хочу продолжить мою тестовую программу. Я делаю много тестов. Так. всякий раз, когда моя тестовая программа встречает любую ошибку, передайте эту ошибку и продолжайте.

Ответы [ 2 ]

2 голосов
/ 17 ноября 2010

При нарушении прав доступа целостность процесса в целом нарушается.Там нет нормального способа оправиться от этого состояния;и поэтому нет вменяемого способа продолжить тестирование.Когда процесс сам себя повреждает, он останавливается независимо от того, хочет ли этого модуль модульного тестирования.

1 голос
/ 17 ноября 2010

Я считаю, что методы, используемые для обнаружения нарушений доступа, определяются реализацией. Тем не менее, это плохая идея, как бы вы ее ни вырезали. Если ваша программа аварийно завершает работу, вы все равно можете прервать процесс тестирования и просто устранить проблему перед продолжением.

...