テストの実行
ファイルまたはフォルダー内で直接テストを実行する
テストを開始する前に特定のアクションを必要とせず、追加のオプションを構成したくない場合は、次のオプションを使用してテストを実行できます。
テストファイル内のすべてのテストを実行するには、キャレットをテストファイルまたはテストメソッドに置き、 Ctrl+Shift+F10 を押します。 または、テストメソッドの横にある
ガターアイコンをクリックし、リストから 実行 '<テスト名>' を選択します。
ガターアイコンはテストの状態によって変化します:
ガターアイコンは、一連のテストを示します。 このアイコンを使用して、ファイル内のすべてのテストを実行します。
ガターアイコンは、新しいテストをマークします。
ガターアイコンは、成功したテストを示します。
ガターアイコンは、失敗したテストをマークします。
フォルダー内のすべてのテストを実行するには、 プロジェクト ツールウィンドウでこのフォルダーを選択し、 Ctrl+Shift+F10 を押すか、コンテキストメニューから 「フォルダー」でテストを実行する を選択します。

実行ウィジェットを使用してテストを実行する
テストを実行すると、GoLand は一時的な実行構成を作成します。 一時的な実行構成を保存したり、設定を変更したり、チームの他のメンバーと共有したりできます。 詳細については、 実行 / デバッグ構成 を参照してください。
新しい 実行構成を作成するか、一時的なものを保存します。
メインツールバーの実行ウィジェットを使って、実行する構成を選択します。
をクリックするか、 Shift+F10 を押します。

Structure からテストを実行する
構造 ツールウィンドウで、実行するテストメソッドを 1 つまたは複数選択できます。 この場合、IDE はこれらのメソッドを使用して一時的な実行構成も作成し、それを 保存して編集できます。
プロジェクト ツールウィンドウで、Go テストファイル (
_test.go) をダブルクリックします。に移動します。
構造 ツールウィンドウで、1 つまたは複数のテストメソッドを右クリックし、
実行 'メソッド name' (Ctrl+Shift+F10) を選択します。
構造 ツールウィンドウでメソッドを右クリックし、次を選択します。
パターン テストスコープを含む構成が 1 つしかない場合は 一時スイートに追加:<構成名>。
パターン テストスコープに複数の構成がある場合、 JUnit パターンスイートに追加 (JUnit) / 一時スイートに追加 (TestNG)。 この場合、ターゲット構成を選択できるポップアップが表示されます。

GoLand がテストの実行を終了すると、その実行構成のタブ上の 実行 ツールウィンドウに結果が表示されます。 テスト結果の分析の詳細については、 テスト結果の確認を参照してください。

テストフラグを使用してテストを実行する
-race、 -failfast、 -short などのテストフラグを使用してテストを実行できます。 pkg.go.dev にある Go のドキュメント(英語)の他のフラグを確認してください。
に移動します。
アプリケーションまたはテストの実行に使用する実行 / デバッグ構成をクリックします。 プログラムの引数 フィールドで、使用する予定のフラグを指定します。
-race: データ競合の検出を有効にします。linux/amd64、freebsd/amd64、darwin/amd64、windows/amd64、linux/ppc64le、linux/arm64でのみサポートされます(48 ビット VMA のみ)。-test.failfast: 最初のテストが失敗した後、新しいテストを停止します。-test.short: 長時間実行されるテストの実行時間を短縮します。-test.benchmem: ベンチマークのメモリ割り当て統計を出力します。

プロジェクト内のすべてのテストを実行する
メインメニューで を選択します。
新規構成の追加 アイコン(
)をクリックし、 Go テスト を選択します。
テスト種類 ドロップダウンリストから、次のオプションのいずれかを選択します。
パッケージ: パッケージパス フィールドで選択したパッケージのすべてのテストを実行します。
ディレクトリ: ディレクトリ フィールドで選択したパッケージのすべてのテストを実行します。
実行 をクリックしてください。
ファズテスト
ファズテストは、さまざまな入力を継続的に送信することでテストを自動化する方法です。 入力は、 f.Add("mySampleData") で提供したサンプルデータに従って生成されます。
次のデータ型を受け入れる f.Add(): 文字列、 []byte、 rune、 int、 int8、 int16、 int32、 int64、 uint、 uint8、 unit16、 uint32、 uint64、 float32、 float64、 bool
ファズテストの実行
ガター テストの実行 アイコンをクリックし、 実行 を選択してから、ファズテスト構成(たとえば、 テストに行く -fuzz FuzzTest )を選択します。
テストが失敗した場合は、 testdata ディレクトリへのリンクをクリックして、テストに失敗した入力を確認できます。
失敗したシードコーパスエントリを使用して gotest を実行するには、 testdata ディレクトリからファイルを開き、ガターの ファジングを実行する アイコンをクリックして、必要な構成を選択します。

ファズテストのデバッグ
必要な行のガターをクリックして、ブレークポイントを作成します。
または、ブレークポイントを作成する行をクリックして Ctrl+F8 を押します。
をクリックしてください。
デバッグ ポップアップウィンドウで、目的の実行 / デバッグ構成を選択します。
コミット後にテストを実行する
変更をプッシュする前に、変更によってコードが壊れないことを確認したい場合は、コミットチェックとしてテストを実行します。
テスト構成の設定
Alt+0 を押して コミット ツールウィンドウを開き、 コミットオプションを表示
をクリックします。
「高度なコミットチェック 」メニューで、「実行構成 」オプションの横にある「構成の選択 」をクリックし、実行する構成を選択します。

テスト構成を設定した後、コミットするたびに指定したテストが実行されます。
テストを停止
実行構成のタブの 実行 ツールバーで次のオプションを使用します。
をクリックするか、 Ctrl+F2 を押してプロセスを直ちに終了します。

テストの再実行
1 つのテストを再実行
実行 ツールウィンドウの実行構成のタブでテストを右クリックし、 実行 'テスト名' を選択します。
セッションですべてのテストを再実行する
実行 ツールバーの
をクリックするか、 Ctrl+F5 を押して、セッション内のすべてのテストを再実行します。
失敗したテストの再実行
失敗したテストのみを再実行するには、 実行 ツールバーの
をクリックします。
Shift を押したまま
をクリックすると、失敗したテストを再度 実行 するか、 デバッグ するかを選択できます。
失敗したテストとともに、前回のテスト実行中に無視された、または開始されなかったテストをトリガーするように IDE を構成できます。 実行 ツールバーの
をクリックし、 再実行失敗に開始されていないテストを含める オプションを有効にします。
テストを自動的に再実行する
GoLand で自動テストのようなランナーを有効化できます。現在の実行構成にあるテストは、関連するソースコードを変更すると自動的に再起動します。
自動テストのようなランナーを有効にするには、テスト結果ツールバーで
自動的に再実行 をクリックします。
失敗したテストをデバッグする
テストが失敗する理由がわからない場合は、デバッグすることができます。
エディターで、ブレークポイントを設定する行のガターをクリックします。
プログラムを中断したい場所に応じて、使用できるブレークポイントにはさまざまなタイプがあります。 詳細については、 ブレークポイント を参照してください。
失敗したテストの横にある
ガターアイコンを右クリックし、 デバッグ 'テスト名' を選択します。
テストはデバッグモードで再実行されます。 その後、テストは一時停止され、 現在の状態を確認できるようになります。
テストをステップ実行して、その実行を詳細に分析できます。

生産性のヒント
個別のテーブルテストを実行する
ガターの 実行 アイコン(
)を使用して、個々のテーブルテストを実行できます。 また、 実行 ツールウィンドウから個々のテーブルテストに移動できます。
テーブルテストの現在のサポートには、次の制限があります。
テストデータ変数は、スライス、配列、マップである必要があります。
t.Run呼び出しと同じ関数で定義する必要があり、初期化後に使用しないでください(forループのrange句を除く)。個々のテストデータエントリは、構造体リテラルである必要があります。 サブテスト名式で使用されるループ変数は、
t.Run呼び出しの前に使用しないでください。サブテスト名の式は、テストデータ文字列フィールド、テストデータ文字列フィールドの連結、
%sおよび%d動詞を使用したfmt.Sprintf()呼び出しにすることができます。例: 次のコードスニペットでは、
fmt.Sprintf("%s in %s", tc.gmt, tc.loc)はサブテスト名の式です。for _, tc := range testCases { t.Run(fmt.Sprintf("%s in %s", tc.gmt, tc.loc), func(t *testing.T) { loc, err := time.LoadLocation(tc.loc) if err != nil { t.Fatal("could not load location") } gmt, _ := time.Parse("15:04", tc.gmt) if got := gmt.In(loc).Format("15:04"); got != tc.want { t.Errorf("got %s; want %s", got, tc.want) } }) }
