「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > `os.exit()`を正確にテストするにはどうすればよいですか?コードカバレッジを維持しますか?

`os.exit()`を正確にテストするにはどうすればよいですか?コードカバレッジを維持しますか?

2025-03-13に投稿されました
ブラウズ:828

How Can I Accurately Test `os.Exit()` in Go and Maintain Code Coverage?

os.exitシナリオをカバレッジ情報(coverall.io/goveralls)を使用してテストするテスト(coveralls.io/goveralls)主な関心事は、バイナリの再投票などの既存の方法がカバレッジを追跡できないことです。バイナリを再検討するのではなく、os.exit()またはlog.fatalf()関数を変更することによりテストが実行されます。出口コードまたはエラーログをキャプチャします。 輸入 ( 「FMT」 「OS」 )) var osexit = os.exit Func Crasher(){ fmt.println( "炎の中に行く!")) Osexit(1) }

修正されたテストコード:foo/bar_test.go

パッケージfoo 「テスト」をインポートする func testcrasher(t *testing.t){ //現在の関数を保存し、最後に復元します: oflosexit:= Osexit defer func(){osexit = oldosexit}() varはintを取得しました myexit:= func(code int){ get = code } Osexit = myExit クラッシャー() exp:= 1; got!= exp { T.errorf( "予想出口コード:%d、got:%d"、exp、got) } }

このアプローチにより、カバレッジツールはos.exit()の実行を正確に追跡でき、os.exit()でルーチンが排出されるテストケースがテスト結果でカバーされていることを保証します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3