GoでWASM用実装のテスト


WASMでテスト

GOOS=js GOARCH=wasm の場合のテストってどうすればいいんだろうかというのを調査してみた。
その結果、wasmbrowsertestっていうのが見つかりました。

準備

  1. Chromeのインストールをあらかじめ実施しておきましょう

  2. wasmbrowsertestのインストール

    go get github.com/agnivade/wasmbrowsertest
    i=$(which wasmbrowsertest) ln -s $i $(dirname $i)/go_js_wasm_exec
    

使い方

go env -w GOOS=js GOARCH=wasm
go test .

VSCodeの場合

ワークスペースの設定に以下の設定を入れます。

{
    "go.toolsEnvVars": {
        "GOARCH":"wasm",
        "GOOS":"js",
    },
    "go.testEnvVars": {
        "GOARCH":"wasm",
        "GOOS":"js",
    }
}

VSCodeのコマンドパレットから「Reload Window」をすればテストの実行と結果表示をVSCodeの出力ペインで確認できます。

まとめ

  • 使い勝手がgo testと何ら変わらずで便利
  • ChromeDP(ヘッドレスChromeドライバー)を裏で使う
  • go_js_wasm_execという命名の解説はgo help runに書いてる