Отладка тестов 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.