testing.Tでできるけど、testing.Mでできないこと func TestXXX(t *testing.T)の場合は、t.Fatalを呼ぶことにとってテストの実行をその場で止めることが可能です。 // (例) func TestXXX(t *testing.T) { // テストの前処理が失敗したら、その時点でFAILさせる if err := setup(); err != nil { t.Fatal("setup fail") } // ここから先は、Fatalの際は実行されない got, err := XXX(input) if got != expected { t.Error("unexpected result") } }
![[Go]func TestMain(m *testing.M)内で実行した前処理の結果によって、m.Runを実行させないようにしたい](https://cdn-ak-scissors.b.st-hatena.com/image/square/a202d1ede46fedcb05ddbeccbbfd47a76375e5f4/height=288;version=1;width=512/https%3A%2F%2Fstorage.googleapis.com%2Fzenn-user-upload%2Favatar%2F51291e09a0.jpeg)