Невозможно запустить go тесты из GoLand (Intellij Idea): компиляция не удалась - PullRequest
0 голосов
/ 18 февраля 2020

Я сделал простое приложение в go и пытаюсь запустить тесты с помощью GUI инструментов GoLand.

В myfile_test. go файл рядом с тестовым приколом c Я нажимаю зеленую кнопку, которая должна начать тестирование. Но я получаю сообщение об ошибке: «Компиляция не удалась» и сообщение в консоли:

# command-line-arguments [command-line-arguments.test]
./myfile_test.go:21:11: undefined: MyStruct
./myfile_test.go:22:12: undefined: MyFuncName
./myfile_test.go:33:12: undefined: AnotherStruct

Compilation finished with exit code 2

Другие варианты (запуск теста с Coverage / CPU Profile) также не работают. GoLand 2020.1 EAP. Та же проблема возникла в более старых версиях GoLand.

Но тест с консоли запускается нормально:

go test -v

=== RUN   TestMyStruct_MyMethod
--- PASS: TestMyStruct_MyMethod (0.00s)
PASS
ok      _/home/username/projects/my_project_name     0.002s

Ответы [ 3 ]

1 голос
/ 30 апреля 2020

Ответ от @porfirion работал на меня.

По сути, вам нужно поставить галочку «Включить Go Интеграция модулей» в GoLand под «Предпочтения» -> «Go» -> «Go Модули»

Тогда Голанд Переиндексация вашего проекта, и это может занять много времени, если у вас большой проект с большим количеством модулей. Мой занял 30 минут. Вы можете проверить состояние процесса переиндексации в нижней части IDE.

Тестовый прогон будет работать после переиндексации.

0 голосов
/ 08 марта 2020

Проблема в том, что вы указываете на один файл. Все остальные файлы, даже если они находятся в пакете, не будут импортированы. go build ведет себя так же, если вы собираетесь создать отдельный файл и забыли включить другие файлы, которые он использует, в команду.

Измените тип теста на «Каталог», а файлы - на "/project-root-dir". Затем он будет включать все файлы в каталоге во время сборки и должен искать все _test.go файлы для выполнения тестов.

0 голосов
/ 18 февраля 2020

Я решил проблему с инициализацией нового модуля go и включением Go Интеграция модулей:

1) Запуск в терминале go mod init my_module_name

2) Нажмите «Файл -> Настройки» "или нажмите Ctrl + Alt + S

3) Установите флажок" Включить Go Интеграция модулей "и нажмите кнопку" Применить "project settings window

Теперь все функции тестирования в GoLand работают хорошо (включая тесты с покрытием, et c.)

...