Я использую "go test -v" для запуска множества модульных тестов. Я хотел бы отлаживать их с помощью delve. Когда я пытаюсь запустить отладчик, я получаю сообщение об ошибке "Не удается отладить неосновной пакет". Итак, как я могу отлаживать модульные тесты с помощью отладчика delve?
Отладка тестов с помощью delve
Ответы (2)
Используйте dlv test
:
$ dlv test -- -test.v
Type 'help' for list of commands.
(dlv) continue
=== RUN TestReadFileError
--- PASS: TestReadFileError (0.00s)
=== RUN TestReadFile
--- PASS: TestReadFile (0.00s)
[..]
PASS
Process 8014 has exited with status 0
(dlv) quit
Process 8014 has exited with status 0
Вы также можете передать -test.run
для выбора тестов для запуска (точно так же, как go test -run
).
Внутри это то же самое, что и ответ Flimzy (он компилирует тестовый двоичный файл с go test -c
), но более упорядоченный и не оставляет файлы .test для очистки.
person
Martin Tournoij
schedule
14.04.2017
Где задокументировано
-test.run
? Его нет в github.com/derekparker/delve/blob/master. /Документация/использование/
- person jcollum; 13.05.2020
Это флаг для двоичного файла, скомпилированного с помощью
go test
, а не delve @jcollum.
- person Martin Tournoij; 14.05.2020
Я не знаком с delve, но если он может работать с скомпилированным двоичным файлом, просто скомпилируйте свои тесты, используя флаг -c
:
-c
Compile the test binary to pkg.test but do not run it
(where pkg is the last element of the package's import path).
The file name can be changed with the -o flag.
Затем запустите копаться на выходе.
person
Flimzy
schedule
12.04.2017
Я заставил это работать dlv exec ./pkg.test -- -gocheck.f TestLoadImage, но введите «help» для списка команд. (dlv) шаг Остановлен на: 0x7fe7886b2090 => 1: исходный код недоступен Команда не выполнена: нет исходного кода для ПК 0x7fe7886b2090 Как указать, где должен находиться исходный код?
- person nicocesar; 24.03.2021