坂本  健一

坂本 健一

1633745340

GoとSonarQubeを使用した静的Golangコード分析

コードを作成する場合、アプリコードであろうと自動化コードであろうと、1つの事実が依然として当てはまります。コードはベストプラクティスに従い、ベストプラクティスでテストする必要があります。そうしないと、本番レベルのコードで構文とセキュリティの問題が発生するリスクがあります。

このガイドでは、人気のある無料の静的コード分析ツールであるSonarQubeを使用してGolangコードをテストする方法について説明します。

SonarQubeDockerコンテナの作成

静的コード分析を開始する前に、SonarQube環境を稼働させる必要があります。開発環境の観点から、これを行う最良の方法は、ローカルホスト上のDockerを使用することです。

Dockerコンテナーを作成して実行するには、ターミナルを開いて次のコマンドを使用します。

docker run -d --name sonarqube -p 9000:9000 sonarqube

次に、Dockerコンテナにログインします。Webブラウザーを開き、次のリンクに移動します。

http://localhost:90000


以下のスクリーンショットに示すように、SonarQubeWebポータルが稼働しているのがわかります。

ダッシュボード

SonarQubeへのログイン

SonarQubeにログインするためのデフォルトのユーザー名とパスワードはadminです。

[ログイン]ボタンをクリックして、ユーザー名とパスワードを入力します。 ログイン

SonarScannerのインストール

SonarScannerは、SonarQubeテストを実行するために使用するコマンドラインツールです。テストは結果をSonarQubeサーバーに送信して、表示できるようにします。

SonarScannerをインストールするには、Webブラウザーを開き、次のURLにアクセスします。

https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

実行しているオペレーティングシステムを選択し、SonarScannerをダウンロードします。

SonarScanner

ダウンロードを次のセクションで使用できる場所に保存して、SonarScannerをオペレーティングシステム環境の$ PATHに追加します。たとえば、デスクトップまたはドキュメントフォルダに保存できます。SonarScannerを使用してテストを実行するため、場所は削除されない場所である必要があります。

SonarScannerを$ PATHに追加する

WindowsとMacOSのどちらを使用しているかに関係なくcd、SonarScannerパスを常に使用する必要がない場合は、SonarScannerを環境$ PATHに追加する必要があります。

次のディレクトリを$ PATHに追加します。

location_of_download\sonar-scanner-version-operatingsystem\bin

プログラムはbinディレクトリにありsonar-scanner、ターミナルから実行できるように$ PATHが指す必要があります。

テストするコード

静的コード分析を含め、Golangでコードをテストするときは、適切なGolangテストがあることを確認する必要があります。適切なGolangテストの主な属性は次のとおりです。

テストに使用するこの例のコードは、非常に簡単な例です。これは、ハードコアなGolangテストではなく、SonarQubeでのテストのワークフローを示すことを目的としています。

package Test

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestDemo(t *testing.T) {
	one := "one"
	two := "one"

	assert.Equal(t, one, two, "the two variables should be the same value")
}

と呼ばれるデスクトップにディレクトリを作成し、ディレクトリ内にTestコードを保存しますmy_test.go。デスクトップの場所は必須ではありませんが、それがこのガイドが従うものです。

新しいSonarQubeプロジェクトの作成

静的コード分析テストをローカルで実行する場合、またはある種のパイプラインで実行する場合でも、静的コード分析のレポートを保存するためのホームが必要になります。そこでプロジェクトが始まります。テストを実行すると、出力と結果はSonarQubeのプロジェクトに送られます。

新しいプロジェクトを作成するには、Webブラウザーを開き、SonarQubeダッシュボードに移動します。

次に、[プロジェクト]をクリックします。

プロジェクト

[新しいプロジェクト作成]ボタンをクリックします。

新たなプロジェクト

この例に従うには、プロジェクトに「Gotest」という名前を付けます。名前を付けたら、[設定]ボタンをクリックします。

設定

次に、トークンを生成する必要があります。トークンを使用すると、SonarQubeテストの実行中にローカルホストから認証できます。トークンに「Gotest」という名前を付け、[生成]ボタンをクリックします。

生成

[続行]ボタンをクリックして、テストを実行するための次のセクションに進みます。

テストの実行と確認

プロジェクトが作成されたので、テストの実行を開始します。

手順2で、[その他]オプションを選択してGolangテストを実行します。

行け

実行しているOSを選択します。

OS

テストの実行

sonar-scannerコマンドラインをコピーして、テストの実行を開始します。コマンドラインは、SonarQubeからのプロジェクト、ホストURL、および生成されたトークンを指定します。

コマンドライン

次に、コマンドラインに移動cdし、「テストするコード」セクションからテストが保存されているディレクトリに移動します。

テスト

テストと同じディレクトリに移動sonar-scannerしたら、コピーしたコマンドラインを実行します。実行の成功を示す以下のようなスクリーンショットが表示されます。

合格した

テストの確認

SonarQubeダッシュボードに戻り、[プロジェクト]をクリックします。これで、実行されて正常に合格したテストが表示されます。 SonarQubeレポート

おめでとうございます!GolangでSonarQubeテストを正常に実行しました

結論

コードを書くことにした場合、コードの品質はあなたとそれを使用するすべての人にとって非常に重要です。コードの品質に関しては、作成しているコードが世界にリリースされる準備ができているかどうかを知る必要があります。静的コード分析を使用すると、実行するコードが適切に構成されていることを確認できます。

リンク: https://www.pluralsight.com/guides/static-code-analysis-with-go-and-sonarqube

#golang #go 

What is GEEK

Buddha Community

GoとSonarQubeを使用した静的Golangコード分析
坂本  健一

坂本 健一

1633745340

GoとSonarQubeを使用した静的Golangコード分析

コードを作成する場合、アプリコードであろうと自動化コードであろうと、1つの事実が依然として当てはまります。コードはベストプラクティスに従い、ベストプラクティスでテストする必要があります。そうしないと、本番レベルのコードで構文とセキュリティの問題が発生するリスクがあります。

このガイドでは、人気のある無料の静的コード分析ツールであるSonarQubeを使用してGolangコードをテストする方法について説明します。

SonarQubeDockerコンテナの作成

静的コード分析を開始する前に、SonarQube環境を稼働させる必要があります。開発環境の観点から、これを行う最良の方法は、ローカルホスト上のDockerを使用することです。

Dockerコンテナーを作成して実行するには、ターミナルを開いて次のコマンドを使用します。

docker run -d --name sonarqube -p 9000:9000 sonarqube

次に、Dockerコンテナにログインします。Webブラウザーを開き、次のリンクに移動します。

http://localhost:90000


以下のスクリーンショットに示すように、SonarQubeWebポータルが稼働しているのがわかります。

ダッシュボード

SonarQubeへのログイン

SonarQubeにログインするためのデフォルトのユーザー名とパスワードはadminです。

[ログイン]ボタンをクリックして、ユーザー名とパスワードを入力します。 ログイン

SonarScannerのインストール

SonarScannerは、SonarQubeテストを実行するために使用するコマンドラインツールです。テストは結果をSonarQubeサーバーに送信して、表示できるようにします。

SonarScannerをインストールするには、Webブラウザーを開き、次のURLにアクセスします。

https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

実行しているオペレーティングシステムを選択し、SonarScannerをダウンロードします。

SonarScanner

ダウンロードを次のセクションで使用できる場所に保存して、SonarScannerをオペレーティングシステム環境の$ PATHに追加します。たとえば、デスクトップまたはドキュメントフォルダに保存できます。SonarScannerを使用してテストを実行するため、場所は削除されない場所である必要があります。

SonarScannerを$ PATHに追加する

WindowsとMacOSのどちらを使用しているかに関係なくcd、SonarScannerパスを常に使用する必要がない場合は、SonarScannerを環境$ PATHに追加する必要があります。

次のディレクトリを$ PATHに追加します。

location_of_download\sonar-scanner-version-operatingsystem\bin

プログラムはbinディレクトリにありsonar-scanner、ターミナルから実行できるように$ PATHが指す必要があります。

テストするコード

静的コード分析を含め、Golangでコードをテストするときは、適切なGolangテストがあることを確認する必要があります。適切なGolangテストの主な属性は次のとおりです。

テストに使用するこの例のコードは、非常に簡単な例です。これは、ハードコアなGolangテストではなく、SonarQubeでのテストのワークフローを示すことを目的としています。

package Test

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestDemo(t *testing.T) {
	one := "one"
	two := "one"

	assert.Equal(t, one, two, "the two variables should be the same value")
}

と呼ばれるデスクトップにディレクトリを作成し、ディレクトリ内にTestコードを保存しますmy_test.go。デスクトップの場所は必須ではありませんが、それがこのガイドが従うものです。

新しいSonarQubeプロジェクトの作成

静的コード分析テストをローカルで実行する場合、またはある種のパイプラインで実行する場合でも、静的コード分析のレポートを保存するためのホームが必要になります。そこでプロジェクトが始まります。テストを実行すると、出力と結果はSonarQubeのプロジェクトに送られます。

新しいプロジェクトを作成するには、Webブラウザーを開き、SonarQubeダッシュボードに移動します。

次に、[プロジェクト]をクリックします。

プロジェクト

[新しいプロジェクト作成]ボタンをクリックします。

新たなプロジェクト

この例に従うには、プロジェクトに「Gotest」という名前を付けます。名前を付けたら、[設定]ボタンをクリックします。

設定

次に、トークンを生成する必要があります。トークンを使用すると、SonarQubeテストの実行中にローカルホストから認証できます。トークンに「Gotest」という名前を付け、[生成]ボタンをクリックします。

生成

[続行]ボタンをクリックして、テストを実行するための次のセクションに進みます。

テストの実行と確認

プロジェクトが作成されたので、テストの実行を開始します。

手順2で、[その他]オプションを選択してGolangテストを実行します。

行け

実行しているOSを選択します。

OS

テストの実行

sonar-scannerコマンドラインをコピーして、テストの実行を開始します。コマンドラインは、SonarQubeからのプロジェクト、ホストURL、および生成されたトークンを指定します。

コマンドライン

次に、コマンドラインに移動cdし、「テストするコード」セクションからテストが保存されているディレクトリに移動します。

テスト

テストと同じディレクトリに移動sonar-scannerしたら、コピーしたコマンドラインを実行します。実行の成功を示す以下のようなスクリーンショットが表示されます。

合格した

テストの確認

SonarQubeダッシュボードに戻り、[プロジェクト]をクリックします。これで、実行されて正常に合格したテストが表示されます。 SonarQubeレポート

おめでとうございます!GolangでSonarQubeテストを正常に実行しました

結論

コードを書くことにした場合、コードの品質はあなたとそれを使用するすべての人にとって非常に重要です。コードの品質に関しては、作成しているコードが世界にリリースされる準備ができているかどうかを知る必要があります。静的コード分析を使用すると、実行するコードが適切に構成されていることを確認できます。

リンク: https://www.pluralsight.com/guides/static-code-analysis-with-go-and-sonarqube

#golang #go