Запустите все тесты во всех пакетах приложения GO из VSCode - PullRequest
0 голосов
/ 27 апреля 2020

Я довольно новичок с Golang и пытаюсь использовать его с VSCode в качестве редактора.

У меня есть рабочее пространство VSCode, которое содержит исходный код моего приложения, разделенного на несколько пакетов, что-то вроде

myapp (the workspace)
  src
    pck1
      f11.go
      f11_test.go
    pck2
      f21.go
      f21_test.go

Моя цель - иметь возможность запускать все тесты одной командой изнутри VSCode. Я установил расширение GO.

В настройках myapp-workspace.code-workspace я определил

  "settings": {
    "go.gopath": "/blah/blah/myapp/",
    "go.testFlags": ["-v"]
  }

, чтобы убедиться, что GOPATH указывает на папку моего рабочего пространства.

При такой настройке я могу запустить один тестовый файл или один пакет из палитры команд VS C, но если я попытаюсь запустить команду Go: Test all packages in Workspace, как предложено @icza, я увижу на выходе окно, которое запускает команда:

/usr/local/go/bin/go test -timeout 30s ./... -v

, что приводит к серии сообщений об ошибках, первое из которых

can't load package: package ./pkg/mod/9fans.net/go@v0.0.0-20181112161441-237454027057/acme: cannot use path@version syntax in GOPATH mode

Если я пытаюсь использовать встроенный терминал VS C с go test Я получаю ошибку

can't load package: package .: no Go files in /blah/blah/myapp

Если я попытаюсь с интегрированного терминала VS C с go test ./..., я получу длинный список ошибок, похожих на те, которые были сгенерированы командой Go: Test all packages in Workspace и в конце я получаю следующие ошибки

src/game/game.go:4:2: cannot find package "pck1" in any of:
        /usr/local/go/src/pck1 (from $GOROOT)
        /Users/administrator/go/src/pck1 (from $GOPATH)
src/game/game.go:6:2: cannot find package "pck2" in any of:
        /usr/local/go/src/pck2 (from $GOROOT)
        /Users/administrator/go/src/pck2 (from $GOPATH)

Я чувствую, что я делаю что-то не так со значением GOPATH, но я не знаю, что.

Есть ли способ запустить все тестирует во всех пакетах из VSCode одной командой?

1 Ответ

0 голосов
/ 27 апреля 2020

Существует встроенная команда: Go: Test all packages in Workspace.

Вы также можете запустить go test ./... во встроенном терминале, если вы находитесь в root вашего рабочего пространства. ./... вернется во все подпапки. См. go тест в сложной структуре папок .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...