以下のサイトを参考にやってみました。
Go は公式からインストール。
VS Code も公式からインストール。
Go のインストールは c:\go
にしました。インストール後環境変数を見ると GOPATH 環境変数が追加されていてユーザーディレクトリの下の go が設定されていました。
VS Code に Go の拡張機能を入れます。っていうかパブリッシャーがマイクロソフト!?知らんかった…。 少し前の Go の環境構築の記事を見る限り Microsoft ではないパブリッシャーのスクショとかが見受けられるので最近変わったんですかね?
この段階で .go
のファイルのあるフォルダを開いてファイルを適当に開くと以下のツールのインストールをするかという確認が出たので Install All しました。
Installing 12 tools at C:\Users\kaota\go\bin gocode gopkgs go-outline go-symbols guru gorename dlv gocode-gomod godef godef-gomod goreturns golint
ここでインストールしなくても Go: Install/Update tools
で同じことが出来ます。
私は、このあと Go: Install/Update tools
を実行して全ツールを追加しておきました。
実行してみよう
GOHOME の下の src フォルダに hello_world というフォルダを作って Visual Studio Code で開きます。 main.go という名前でファイルを開いて以下のようなコードを書きます。
package main import ( "fmt" ) func main() { fmt.Print("Hello world") }
書いてる途中に補間具合を見てみたのですが結構優秀そうです。下の画像のあと Enter キーを押すと import が自動挿入されました。
Ctrl + Shift + B を押してもタスクが構成されていないと出るので、テンプレートから task.json を生成を選択して Others を選んで出てきた tasks.json を以下のようにしました。
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "run", "type": "shell", "command": "go", "args": [ "run", "${file}" ] } ] }
もう一度 main.go に行って Ctrl + Shift + B をするとデフォルトのビルドタスクを選択するように言われるので run を選びます。そして、もう一度 main.go に戻って Ctrl + Shift + B をするとちゃんと実行されました。
Hello world
デバッグの画面を出して F5 を押すとデバッグが始まります。ただ、私のところだと少し時間がかかりました。
単体テストは?
testing というパッケージを使うみたいです。参考にしたページ。
ファイル名の終わりは _test.go でテストをする関数は Test で始まって引数に t *testing.T
を受け取って色々するみたいですね。
まだ、このページを流し読みしただけですが他の言語でよくある AssertXXX 的なメソッドは標準ではなさそう。
とりあえず、こういうのを書いてみました。
package main import ( "testing" ) func TestSuccess(t *testing.T) { var x = 1var y = 2var expected = 3var actual = x + y if x+y != 3 { t.Errorf("expected: %v, but actual: %v", expected, actual) } } func TestFailed(t *testing.T) { var x = 1var y = 2000var expected = 3var actual = x + y if x+y != 3 { t.Errorf("expected: %v, but actual: %v", expected, actual) } }
すると、VSCode の画面がこんな感じになりました。
CodeLens にテスト起動のリンクが…。押してみると実行してくれました。
Running tool: C:\Go\bin\go.exe test -timeout 30s hello_world -coverprofile=C:\Users\kaota\AppData\Local\Temp\vscode-goPdh5s3\go-code-cover --- FAIL: TestFailed (0.00s) c:\Users\kaota\go\src\hello_world\main_test.go:25: expected: 3, but actual: 2001 FAIL coverage: 0.0% of statements FAIL hello_world 0.254s Error: Tests failed.
凄い。カバレッジもひっそりと出してくれてるみたいですね。可視化したいな。
debug test を押すとちゃんとデバッグしてくれました。
デバッグ環境も、こちらのサイトを参考に json 手書きかなぁと思ってましたが今は特に必要なさそうです。
まとめ
インストーラー叩いて拡張機能入れたら、あとは従ってるだけですね。 Ctrl + Shift + B で軽く実行したいなと思ったら手で少し json 書くくらいでしょうか。
Ctrl + Shift + P を押して go: で絞り込んでみるとインターフェースのスタブを作ったりテストを生成したりといった機能があるみたいです。これも素敵そうですね。後で触ってみよう。
ということで結構快適に Windows でお試し出来そうなので触っていってみようと思います。