ホームページ > バックエンド開発 > Golang > ## 盲点があるにもかかわらず、機能テストで 100% のカバレッジを達成するにはどうすればよいですか?

## 盲点があるにもかかわらず、機能テストで 100% のカバレッジを達成するにはどうすればよいですか?

DDD
リリース: 2024-10-25 08:14:02
オリジナル
1045 人が閲覧しました

## How to Achieve 100% Coverage in Functional Tests Despite Blind Spots?

死角のない機能テストのカバレッジを表示

問題

提供されたコードでは、exit メソッドに os.Exit を除外する条件が含まれています。カバレッジ結果の (コード) 行。この行は実行されても緑色で表示されないため、カバレッジ レポートに盲点が生じます。

解決策

この問題に対処するには、主に 2 つのアプローチがあります。

TestMain の使用:

  • main 関数を避けて、アプリケーションの機能をテスト用に別のクラスに抽出します。
  • テスト フレームワークで TestMain 関数を利用して実行を制御します。

コードのリファクタリング:

  • 終了メソッドから if 条件を削除し、別のメカニズム (例:
  • ビルド タグ (例: // build !test) を使用して、テストから main.go ファイルを除外します。このアプローチは、メイン関数が単純でテストが必要ない場合にお勧めします。

実装例

ビルド タグを使用したコードの更新バージョンを次に示します。

<code class="go">//+build !test

package main

import "os"

func main() {
    os.Exit(doFunc())
}</code>
ログイン後にコピー

この変更されたコードはカバレッジ レポートから除外され、機能テストのカバレッジを正確に表すことができます。

テストの実行

次のコマンドを使用してカバレッジ バイナリを構築します。

<code class="sh">go test -c -coverpkg=. -o example -tags test</code>
ログイン後にコピー

次のコマンドを使用してテストを実行します。

<code class="sh">./example -test.coverprofile=/tmp/profile</code>
ログイン後にコピー

結果のカバレッジ レポートには、exit メソッドで以前に除外された行を含め、100% のステートメント カバレッジが表示されるはずです。

以上が## 盲点があるにもかかわらず、機能テストで 100% のカバレッジを達成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート