Я тестирую этот очень простой код Go на MacOS, используя VS Code. Проект состоит из следующих примеров пакетов / файлов:
- azure.com / MYPROJ / CMD / сервис / главная / main.go
- azure.com / myproj / cmd / service / service.go
- azure.com / MYPROJ / CMD / сервис / тесты / test.go
- azure.com / MYPROJ / внутренний / общее / common.go
В командной строке терминала все собирается и все тесты проходят:
иди строить. // (работает в каждой папке)
иди тест. // (тесты работают и проходят)
Однако из кода VS у меня есть 2 проблемы:
1. Импорт из пакета в пакет не работает вообще. Например:
package test
import (
service "azure.com/myproj/cmd/service" // VS complains on this line when running the test.
)
- Команда, которую выполняет код VS, - это не просто "пройти тестирование". Он передает дополнительные параметры, которые включают в себя то, что кажется кэшированным путем, который я пытался удалить из файловой системы, но это не дало эффекта. Вот что содержит вкладка «Вывод» VS.code:
Вкладка «Go Tests»:
unknown import path "azure.com/myproj/cmd/service":
cannot find module providing package
azure.com/myproj/cmd/service
Перейти на вкладку:
/Users/computername/go/src/azure.com/projname/cmd/service/tests
>Finished running tool: /usr/local/bin/go test -c -o
/var/folders/q5/hm9v_6x53lj0gj02yxqtkmd40000gn/T/vscode-goKGOMES/go- code-check azure.com/myproj/cmd/service/tests
can't load package: package
azure.com/myproj/cmd/service: unknown import path
"azure.com/myproj/cmd/service": cannot find module
providing package azure.com/myproj/cmd/service
Я не понимаю, что код VS делает выше с hm9v_6x53lj0gj02yxqtkmd40000gn и как я могу это изменить. Похоже на кеш.
Итак, подведем итог: при тестировании с использованием VS Code я не понимаю, почему он использует команду для запуска тестов (см. Выше) и почему он не может найти импорт, который регулярно выполняется "go build". и команды "go test." не имеют проблем с терминалом.
Еще раз: из командной строки терминала все строится и все тесты проходят.
Кажется, явно проблема, связанная с кодом VS.