Поделиться через


Отладка тестов TAEF

Конфигурация отладчика

По умолчанию тестовые случаи выполняются в отдельном процессе, чем TE.exe: TE.ProcessHost.exe.

Отладка дочерних процессов TE.exe (только windbg/cdb)

Если вы используете отладчик, например cdb или windbg, можно просто передать параметр "-o" в отладчик. Это настроит отладчик для автоматической отладки дочерних процессов в одном экземпляре отладчика.

Пример:

windbg -o te.exe MyTests.dll

Затем, чтобы переключиться на процесс, в котором выполняются тесты, используйте | Команда (pipe). Команда конвейера для переключения процессов используется exaclty в качестве команды ~ (tilda) для переключения потоков.

Пример:

|1s - sets the current process to the second loaded process.

Выполнение тестов InProc (Visual Studio/windbg/cdb)

Если вы предпочитаете использовать Visual Studio для отладки, приведенный выше метод не будет работать. В этом случае просто настройте отладчик для запуска TE.exe, установите соответствующие точки останова в для тестового случая и передайте параметр /inproc в TE.exe. Это гарантирует, что все тесты будут выполняться в рамках процесса TE.exe, а не порождать новый процесс.

Пример:

start devenv /debugexe te.exe MyTests.dll /inproc

Приведенная выше команда запустит Visual Studio. Затем откройте исходный код для тестовых случаев и задайте соответствующие точки останова. Наконец, нажмите клавишу F5, чтобы начать тестовый случай, и он должен прерваться в первой точке останова (если символы загружены правильно).

Описанные выше действия работают только с правильными символами, заданными в Visual Studio. По крайней мере необходимо задать символы тестовой библиотеки DLL, которую вы выполняете отладку. Чтобы задать символы в Visual Studio, выполните следующие действия.

  • Меню "Выберите сервис"
  • Выберите Параметры...
  • Выберите Отладка в меню слева в виде дерева.
  • Выберите Символы в разделе Отладка.
  • Введите путь к символам в разделе Расположение файла символов (*.pdb):
  • Сохранение параметров

Автоматический переход в отладчик ("breakOnCreate" и "breakOnInvoke")

Чтобы упростить процесс отладки, Taef предоставляет возможность автоматического прерывания работы отладчика перед созданием экземпляра каждого тестового класса и (или) перед вызовом каждого метода теста.

Пример:

cdb -gG te.exe MyTests.dll /inproc /breakOnCreate /breakOnInvoke

Приведенная выше команда запустит Te.exe в cdb. Taef войдет в отладчик прямо перед созданием каждого тестового класса и перед вызовом каждого метода теста.

Примечание: Рекомендуется использовать эту функцию при выполнении Te.exe в отладчике, а также при указании параметра /inProc.