2016-09-06 6 views
1

私は外部の第三者の問題のために合格しないかもしれない一連のテストをしています。 この状態が発生したときにテストを失敗させたくないのですが、認識したいと思います。Golangテストスクリプトはエラーではなく警告を発行できますか?

t.Errorf()を発行することは、それ以降のすべてのテストを中止することになるため、考えられません。テストスクリプトがポストして残りのテストを続行するようなトリガができる「警告」がありますか?

+1

これらの呼び出しをいつでも 'Logf'に置き換えることができますが、それらを見るにはverboseフラグを使う必要があります。 – squiguy

答えて

1

goテストツールはコンパイラのようなものです。コンパイラに何かコンパイルするかしないか、警告はありません。あなたが得ようとしている最も近いものは、t.Skipです。現在のテストの実行を停止しますが、失敗したとしてマークしません。しかし、go testの出力には何も表示されませんので、go test -vを使用する必要があります。

addExternal関数が失敗した場合、t.Skipfを使用するパッケージの例を次に示します。

package app 

import "testing" 

func add(a, b int) int { 
    return a + b 
} 

func addExternal(a, b int) int { 
    return 4 
} 

func divide(a, b int) int { 
    return a/b 
} 

func TestThing(t *testing.T) { 
    got := add(1, 2) 
    want := 3 
    if got != want { 
     t.Errorf("add(1, 2) = %d, want %d", got, want) 
    } 
} 

func TestExternalThing(t *testing.T) { 
    got := addExternal(3, 4) 
    want := 7 
    if got != want { 
     t.Skipf("addExternal(3, 4) = %d, want %d", got, want) 
    } 
} 

func TestAnotherThing(t *testing.T) { 
    got := divide(6, 3) 
    want := 2 
    if got != want { 
     t.Errorf("divide(6, 3) = %d, want %d", got, want) 
    } 
} 

これを実行した結果は次のとおりです。リターン・ステータスは0で、パッケージは私がt.Errorfまたはt.Fatalft.Skipfを変更した場合、私は、この出力

$ go test -v 
=== RUN TestThing 
--- PASS: TestThing (0.00s) 
=== RUN TestExternalThing 
--- FAIL: TestExternalThing (0.00s) 
     app_test.go:29: addExternal(3, 4) = 4, want 7 
=== RUN TestAnotherThing 
--- PASS: TestAnotherThing (0.00s) 
FAIL 
exit status 1 
FAIL github.com/jcbwlkr/app 0.005s 
$ echo $? 
1 

パッケージ内の他のテストを得ることかかわら

$ go test -v 
=== RUN TestThing 
--- PASS: TestThing (0.00s) 
=== RUN TestExternalThing 
--- SKIP: TestExternalThing (0.00s) 
     app_test.go:29: addExternal(3, 4) = 4, want 7 
=== RUN TestAnotherThing 
--- PASS: TestAnotherThing (0.00s) 
PASS 
ok  github.com/jcbwlkr/app 0.006s 
$ echo $? 
0 

ノートに合格したと考えられている注意してくださいまだ走っている。もし私がgo test -v ./...のような複数のパッケージをテストしていたとしても、彼らはまだ走っていると思います。

+0

これは私が探していたものです。ありがとう! –

関連する問題